diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | asm/rom3.s | 35476 | ||||
-rw-r--r-- | asm/rom5.s | 10 | ||||
-rw-r--r-- | asm/rom_8040EB4.s | 35453 | ||||
-rw-r--r-- | iwram_syms.txt | 2 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/rng.c | 14 |
7 files changed, 35477 insertions, 35482 deletions
@@ -36,7 +36,7 @@ PREPROC := tools/preproc/preproc C_SRCS := $(wildcard src/*.c) C_OBJS := $(C_SRCS:%.c=%.o) -ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o \ +ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom_8040EB4.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o \ asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o DATA_ASM_OBJS := data/data1.o data/data2.o data/graphics.o data/sound_data.o \ diff --git a/asm/rom3.s b/asm/rom3.s index 7e453c4ac..a988fb6a6 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -110316,35479 +110316,3 @@ cosine2: @ 8040E6C pop {r1} bx r1 thumb_func_end cosine2 - - thumb_func_start Random -Random: @ 8040E84 - ldr r2, _08040E98 - ldr r1, [r2] - ldr r0, _08040E9C - muls r0, r1 - ldr r1, _08040EA0 - adds r0, r1 - str r0, [r2] - lsrs r0, 16 - bx lr - .align 2, 0 -_08040E98: .4byte 0x03004818 -_08040E9C: .4byte 0x41c64e6d -_08040EA0: .4byte 0x00006073 - thumb_func_end Random - - thumb_func_start SeedRng -SeedRng: @ 8040EA4 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08040EB0 - str r0, [r1] - bx lr - .align 2, 0 -_08040EB0: .4byte 0x03004818 - thumb_func_end SeedRng - - thumb_func_start object_new_hidden_with_callback -object_new_hidden_with_callback: @ 8040EB4 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _08040EE8 - movs r1, 0xF8 - movs r2, 0xA8 - movs r3, 0xE - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08040EEC - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r3, r2, r5 - adds r3, 0x3E - ldrb r1, [r3] - movs r4, 0x4 - orrs r1, r4 - strb r1, [r3] - adds r5, 0x1C - adds r2, r5 - str r6, [r2] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08040EE8: .4byte gSpriteTemplate_82087AC -_08040EEC: .4byte 0x02020004 - thumb_func_end object_new_hidden_with_callback - - thumb_func_start StoreWordInTwoHalfwords -StoreWordInTwoHalfwords: @ 8040EF0 - strh r1, [r0] - lsrs r1, 16 - strh r1, [r0, 0x2] - bx lr - thumb_func_end StoreWordInTwoHalfwords - - thumb_func_start LoadWordFromTwoHalfwords -LoadWordFromTwoHalfwords: @ 8040EF8 - ldrh r2, [r0] - movs r3, 0x2 - ldrsh r0, [r0, r3] - lsls r0, 16 - orrs r2, r0 - str r2, [r1] - bx lr - thumb_func_end LoadWordFromTwoHalfwords - - thumb_func_start sub_8040F08 -sub_8040F08: @ 8040F08 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r7, [sp, 0x24] - mov r8, r7 - str r1, [r0] - str r2, [r0, 0x4] - strh r3, [r0, 0x8] - strh r4, [r0, 0xA] - strh r5, [r0, 0xC] - strh r6, [r0, 0xE] - mov r1, r8 - strh r1, [r0, 0x10] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8040F08 - - thumb_func_start sub_8040F34 -sub_8040F34: @ 8040F34 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x24 - mov r8, r0 - ldr r0, [sp, 0x38] - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - ldr r6, [sp, 0x44] - lsls r6, 16 - lsrs r6, 16 - lsls r3, 16 - asrs r3, 16 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - lsls r4, 16 - asrs r4, 16 - str r4, [sp, 0x4] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x8] - str r6, [sp, 0xC] - add r0, sp, 0x10 - bl sub_8040F08 - add r0, sp, 0x10 - mov r1, r8 - movs r2, 0x1 - bl BgAffineSet - add sp, 0x24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8040F34 - - thumb_func_start sub_8040F80 -sub_8040F80: @ 8040F80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - str r2, [sp, 0x20] - adds r4, r3, 0 - ldr r7, [sp, 0x5C] - lsls r0, 24 - lsls r1, 24 - ldr r2, _08041008 - lsrs r1, 23 - lsrs r0, 21 - adds r1, r0 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - str r0, [sp, 0x24] - adds r1, r2 - ldrb r1, [r1] - str r1, [sp, 0x28] - movs r1, 0 - cmp r1, r0 - bcc _08040FB4 - b _08041136 -_08040FB4: - movs r0, 0x20 - ldr r2, [sp, 0x28] - subs r0, r2 - lsls r0, 1 - str r0, [sp, 0x2C] -_08040FBE: - movs r2, 0 - adds r1, 0x1 - str r1, [sp, 0x34] - ldr r3, [sp, 0x28] - cmp r2, r3 - bcc _08040FCC - b _08041124 -_08040FCC: - ldr r0, _0804100C - mov r8, r0 -_08040FD0: - ldrh r1, [r4] - ldr r0, _08041010 - ands r0, r1 - lsls r0, 5 - mov r12, r0 - movs r0, 0xC0 - lsls r0, 4 - ands r0, r1 - mov r3, sp - strh r1, [r3, 0x38] - cmp r0, 0 - bne _08041018 - ldr r0, [sp, 0x20] - add r0, r12 - mov r1, r8 - str r0, [r1] - str r7, [r1, 0x4] - ldr r3, _08041014 - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, 0x2 - str r4, [sp, 0x30] - adds r7, 0x20 - mov r10, r7 - adds r2, 0x1 - mov r9, r2 - b _08041112 - .align 2, 0 -_08041008: .4byte gUnknown_082087C4 -_0804100C: .4byte 0x040000d4 -_08041010: .4byte 0x000003ff -_08041014: .4byte 0x84000008 -_08041018: - movs r1, 0x80 - lsls r1, 4 - cmp r0, r1 - bne _08041068 - movs r3, 0 - adds r4, 0x2 - str r4, [sp, 0x30] - movs r0, 0x20 - adds r0, r7 - mov r10, r0 - adds r2, 0x1 - mov r9, r2 - ldr r4, _08041060 - ldr r6, _08041064 - movs r5, 0x7 -_08041036: - lsls r2, r3, 24 - asrs r2, 24 - subs r0, r5, r2 - lsls r0, 2 - add r0, r12 - ldr r1, [sp, 0x20] - adds r0, r1, r0 - lsls r1, r2, 2 - adds r1, r7, r1 - str r0, [r4] - str r1, [r4, 0x4] - str r6, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, 0x1 - lsls r2, 24 - lsrs r3, r2, 24 - asrs r2, 24 - cmp r2, 0x7 - ble _08041036 - b _08041112 - .align 2, 0 -_08041060: .4byte 0x040000d4 -_08041064: .4byte 0x84000001 -_08041068: - movs r3, 0 - adds r4, 0x2 - str r4, [sp, 0x30] - movs r0, 0x20 - adds r0, r7 - mov r10, r0 - adds r2, 0x1 - mov r9, r2 -_08041078: - movs r2, 0 - lsls r4, r3, 24 - lsls r0, r4, 2 - lsrs r0, 24 - adds r6, r0, 0x3 - mov r1, r12 - adds r5, r1, r0 -_08041086: - lsls r1, r2, 24 - asrs r1, 24 - subs r0, r6, r1 - mov r2, sp - adds r3, r2, r0 - adds r0, r5, r1 - ldr r2, [sp, 0x20] - adds r0, r2, r0 - ldrb r2, [r0] - movs r0, 0xF - ands r0, r2 - lsls r0, 4 - lsrs r2, 4 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x1 - lsls r1, 24 - lsrs r2, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _08041086 - movs r3, 0x80 - lsls r3, 17 - adds r0, r4, r3 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x7 - ble _08041078 - movs r0, 0x80 - lsls r0, 4 - mov r1, sp - ldrh r1, [r1, 0x38] - ands r0, r1 - cmp r0, 0 - beq _08041104 - movs r3, 0 - ldr r4, _080410FC - ldr r6, _08041100 - movs r5, 0x7 -_080410D4: - lsls r1, r3, 24 - asrs r1, 24 - subs r0, r5, r1 - lsls r0, 2 - mov r3, sp - adds r2, r3, r0 - lsls r0, r1, 2 - adds r0, r7, r0 - str r2, [r4] - str r0, [r4, 0x4] - str r6, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r1, 0x1 - lsls r1, 24 - lsrs r3, r1, 24 - asrs r1, 24 - cmp r1, 0x7 - ble _080410D4 - b _08041112 - .align 2, 0 -_080410FC: .4byte 0x040000d4 -_08041100: .4byte 0x84000001 -_08041104: - mov r0, sp - mov r1, r8 - str r0, [r1] - str r7, [r1, 0x4] - ldr r2, _08041148 - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] -_08041112: - ldr r4, [sp, 0x30] - mov r7, r10 - mov r3, r9 - lsls r0, r3, 24 - lsrs r2, r0, 24 - ldr r0, [sp, 0x28] - cmp r2, r0 - bcs _08041124 - b _08040FD0 -_08041124: - ldr r1, [sp, 0x2C] - adds r4, r1 - ldr r2, [sp, 0x34] - lsls r0, r2, 24 - lsrs r1, r0, 24 - ldr r3, [sp, 0x24] - cmp r1, r3 - bcs _08041136 - b _08040FBE -_08041136: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08041148: .4byte 0x84000008 - thumb_func_end sub_8040F80 - - thumb_func_start sub_804114C -sub_804114C: @ 804114C - push {lr} - adds r2, r0, 0 - movs r1, 0 - movs r3, 0x1 -_08041154: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08041160 - adds r0, r1, 0 - b _0804116E -_08041160: - lsrs r2, 1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _08041154 - movs r0, 0 -_0804116E: - pop {r1} - bx r1 - thumb_func_end sub_804114C - - thumb_func_start sub_8041174 -sub_8041174: @ 8041174 - push {r4-r7,lr} - adds r7, r0, 0 - adds r4, r1, 0 - ldr r2, _080411A4 - movs r3, 0 - cmp r3, r4 - bge _080411C0 - movs r6, 0x1 - ldr r0, _080411A8 - adds r5, r0, 0 -_08041188: - adds r0, r7, r3 - ldrb r0, [r0] - eors r2, r0 - movs r1, 0 - adds r3, 0x1 -_08041192: - adds r0, r2, 0 - ands r0, r6 - cmp r0, 0 - beq _080411AC - lsrs r0, r2, 1 - eors r0, r5 - lsls r0, 16 - lsrs r2, r0, 16 - b _080411AE - .align 2, 0 -_080411A4: .4byte 0x00001121 -_080411A8: .4byte 0x00008408 -_080411AC: - lsrs r2, 1 -_080411AE: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _08041192 - lsls r0, r3, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _08041188 -_080411C0: - mvns r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8041174 - - thumb_func_start unref_sub_80411CC -unref_sub_80411CC: @ 80411CC - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r2, _08041208 - movs r3, 0 - cmp r3, r4 - bge _080411FA - ldr r6, _0804120C -_080411DC: - lsrs r1, r2, 8 - adds r0, r5, r3 - ldrb r0, [r0] - eors r2, r0 - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r6 - ldrh r0, [r0] - adds r2, r0, 0 - eors r2, r1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _080411DC -_080411FA: - mvns r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08041208: .4byte 0x00001121 -_0804120C: .4byte gUnknown_082087DC - thumb_func_end unref_sub_80411CC - - thumb_func_start BlendPalette -BlendPalette: @ 8041210 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r12, r1 - lsls r2, 24 - lsrs r7, r2, 24 - mov r0, sp - strh r3, [r0] - movs r6, 0 - cmp r6, r12 - bcs _08041296 - ldr r0, _080412A8 - mov r10, r0 - ldr r1, _080412AC - mov r9, r1 -_0804123E: - mov r0, r8 - adds r5, r6, r0 - lsls r5, 16 - lsrs r5, 15 - mov r1, r10 - adds r0, r5, r1 - ldr r3, [r0] - lsls r4, r3, 27 - lsls r2, r3, 22 - lsls r3, 17 - add r5, r9 - lsrs r4, 27 - ldr r1, [sp] - lsls r0, r1, 27 - lsrs r0, 27 - subs r0, r4 - muls r0, r7 - asrs r0, 4 - adds r4, r0 - lsrs r2, 27 - lsls r0, r1, 22 - lsrs r0, 27 - subs r0, r2 - muls r0, r7 - asrs r0, 4 - adds r2, r0 - lsls r2, 5 - orrs r4, r2 - lsrs r3, 27 - lsls r1, 17 - lsrs r1, 27 - subs r1, r3 - adds r0, r1, 0 - muls r0, r7 - asrs r0, 4 - adds r3, r0 - lsls r3, 10 - orrs r4, r3 - strh r4, [r5] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r12 - bcc _0804123E -_08041296: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080412A8: .4byte 0x0202eac8 -_080412AC: .4byte 0x0202eec8 - thumb_func_end BlendPalette - - thumb_func_start pokemon_get_nick -pokemon_get_nick: @ 80412B0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end pokemon_get_nick - - thumb_func_start pokemon_get_nick_ -pokemon_get_nick_: @ 80412D0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl PokemonGetEncryptedField - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end pokemon_get_nick_ - - thumb_func_start daycare_count_pokemon -daycare_count_pokemon: @ 80412F0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r4, 0 -_080412F8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r6, r0 - movs r1, 0xB - bl PokemonGetEncryptedField - cmp r0, 0 - beq _08041310 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08041310: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _080412F8 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end daycare_count_pokemon - - thumb_func_start sub_8041324 -sub_8041324: @ 8041324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - movs r7, 0 - movs r5, 0 - mov r6, r10 - adds r6, 0x74 - movs r0, 0x1 - mov r8, r0 -_0804133E: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - cmp r0, 0 - beq _0804136E - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0xC - bl PokemonGetEncryptedField - adds r1, r0, 0 - cmp r1, 0 - bne _0804136E - lsls r0, r5, 1 - adds r0, r6, r0 - b _08041374 -_0804136E: - lsls r0, r5, 1 - adds r0, r6, r0 - mov r1, r8 -_08041374: - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0804133E - mov r0, r10 - str r7, [r0, 0x70] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8041324 - - thumb_func_start daycare_empty_slot -daycare_empty_slot: @ 8041394 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_0804139A: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r5, r0 - movs r1, 0xB - bl PokemonGetEncryptedField - cmp r0, 0 - bne _080413B2 - lsls r0, r4, 24 - asrs r0, 24 - b _080413C0 -_080413B2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0804139A - movs r0, 0x1 - negs r0, r0 -_080413C0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end daycare_empty_slot - - thumb_func_start sub_80413C8 -sub_80413C8: @ 80413C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - mov r8, r1 - mov r0, r8 - bl daycare_empty_slot - lsls r0, 24 - lsrs r4, r0, 24 - mov r9, r4 - adds r0, r7, 0 - bl sub_80A2B94 - lsls r0, 24 - cmp r0, 0 - beq _0804144A - lsls r0, r4, 24 - asrs r0, 24 - lsls r4, r0, 3 - subs r4, r0 - lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA0 - add r5, r8 - adds r6, r5, 0 - adds r6, 0x24 - ldr r1, _08041490 - adds r0, r6, 0 - bl StringCopy - adds r0, r6, 0 - movs r1, 0xFC - bl sub_814A518 - adds r6, 0x8 - adds r0, r7, 0 - adds r1, r6, 0 - bl pokemon_get_nick - adds r0, r7, 0 - movs r1, 0x40 - bl PokemonGetField - lsls r0, 24 - lsrs r0, 24 - add r4, r8 - ldr r2, _08041494 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r4, 0xA0 - ldr r0, _08041498 - adds r1, r0 - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - adds r0, r7, 0 - bl sub_80A2DF8 -_0804144A: - mov r2, r9 - lsls r4, r2, 24 - asrs r4, 24 - lsls r5, r4, 2 - adds r4, r5, r4 - lsls r4, 4 - add r4, r8 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl pokemon_restore_pp - movs r0, 0x88 - lsls r0, 1 - add r0, r8 - adds r0, r5 - movs r1, 0 - str r1, [r0] - adds r0, r7, 0 - bl zero_pokemon_struct - bl party_compaction - bl calc_player_party_count - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08041490: .4byte 0x02024ea4 -_08041494: .4byte 0x02025734 -_08041498: .4byte 0x00002b4c - thumb_func_end sub_80413C8 - - thumb_func_start daycare_send -daycare_send: @ 804149C - push {lr} - ldr r0, _080414B4 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080414B8 - adds r0, r1 - ldr r1, _080414BC - bl sub_80413C8 - pop {r0} - bx r0 - .align 2, 0 -_080414B4: .4byte 0x03005ce0 -_080414B8: .4byte 0x03004360 -_080414BC: .4byte 0x020286d0 - thumb_func_end daycare_send - - thumb_func_start sub_80414C0 -sub_80414C0: @ 80414C0 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x50 - adds r0, r4, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - cmp r0, 0 - beq _08041516 - adds r0, r5, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - adds r6, r0, 0 - cmp r6, 0 - bne _08041516 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl zero_pokemon_boxed_data - adds r0, r5, 0 - adds r0, 0xA0 - adds r4, 0x88 - adds r1, r4, 0 - movs r2, 0x38 - bl memcpy - movs r0, 0x88 - lsls r0, 1 - adds r2, r5, r0 - adds r0, 0x4 - adds r1, r5, r0 - ldr r0, [r1] - str r0, [r2] - str r6, [r1] - adds r0, r4, 0 - bl sub_80417F4 -_08041516: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80414C0 - - thumb_func_start sub_804151C -sub_804151C: @ 804151C - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldr r7, _08041538 -_08041524: - adds r0, r4, 0 - bl sub_8040300 - lsls r0, 24 - cmp r0, 0 - beq _08041560 - movs r6, 0x1 - adds r5, 0x1 - b _0804154C - .align 2, 0 -_08041538: .4byte 0x0000ffff -_0804153C: - movs r6, 0 - cmp r0, r7 - bne _0804154C - ldr r0, _0804156C - ldrh r1, [r0] - adds r0, r4, 0 - bl sub_803B8D4 -_0804154C: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_803B7C8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0804153C - cmp r5, 0x63 - ble _08041524 -_08041560: - adds r0, r4, 0 - bl pokemon_calc_effective_stats - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804156C: .4byte 0x02024e82 - thumb_func_end sub_804151C - - thumb_func_start sub_8041570 -sub_8041570: @ 8041570 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x68 - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r7, r4, 2 - adds r0, r7, r4 - lsls r0, 4 - adds r6, r5, r0 - ldr r1, _08041640 - adds r0, r6, 0 - bl pokemon_get_nick_ - adds r0, r6, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r6, 0 - mov r1, sp - bl sub_803B4B4 - mov r0, sp - movs r1, 0x38 - bl PokemonGetField - cmp r0, 0x64 - beq _080415D8 - mov r0, sp - movs r1, 0x19 - bl PokemonGetField - movs r2, 0x88 - lsls r2, 1 - adds r1, r5, r2 - adds r1, r7 - ldr r1, [r1] - adds r0, r1 - str r0, [sp, 0x64] - add r2, sp, 0x64 - mov r0, sp - movs r1, 0x19 - bl pokemon_setattr - mov r0, sp - bl sub_804151C -_080415D8: - ldr r0, _08041644 - movs r1, 0xFA - lsls r1, 1 - adds r1, r0 - mov r8, r1 - mov r0, r8 - mov r1, sp - movs r2, 0x64 - bl memcpy - lsls r0, r4, 3 - subs r0, r4 - lsls r1, r0, 3 - adds r0, r5, r1 - adds r0, 0xC0 - ldrh r0, [r0] - cmp r0, 0 - beq _08041610 - adds r4, r1, 0 - adds r4, 0xA0 - adds r4, r5, r4 - mov r0, r8 - adds r1, r4, 0 - bl sub_80A2D88 - adds r0, r4, 0 - bl sub_80417F4 -_08041610: - bl party_compaction - adds r0, r6, 0 - bl zero_pokemon_boxed_data - movs r2, 0x88 - lsls r2, 1 - adds r0, r5, r2 - adds r0, r7 - movs r1, 0 - str r1, [r0] - adds r0, r5, 0 - bl sub_80414C0 - bl calc_player_party_count - mov r0, r9 - add sp, 0x68 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08041640: .4byte 0x020231cc -_08041644: .4byte 0x03004360 - thumb_func_end sub_8041570 - - thumb_func_start sub_8041648 -sub_8041648: @ 8041648 - push {lr} - ldr r0, _0804165C - ldr r1, _08041660 - ldrb r1, [r1] - bl sub_8041570 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0804165C: .4byte 0x020286d0 -_08041660: .4byte 0x0202e8cc - thumb_func_end sub_8041648 - - thumb_func_start sub_8041664 -sub_8041664: @ 8041664 - push {r4,r5,lr} - sub sp, 0x54 - adds r4, r0, 0 - adds r5, r1, 0 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - movs r1, 0x19 - bl PokemonGetEncryptedField - adds r0, r5 - str r0, [sp, 0x50] - add r2, sp, 0x50 - mov r0, sp - movs r1, 0x19 - bl PokemonSetEncryptedField - mov r0, sp - bl sub_803B570 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x54 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8041664 - - thumb_func_start sub_80416A0 -sub_80416A0: @ 80416A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - lsls r0, r4, 2 - mov r8, r0 - add r4, r8 - lsls r4, 4 - adds r4, r5, r4 - adds r0, r4, 0 - bl sub_803B570 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x88 - lsls r0, 1 - adds r5, r0 - add r5, r8 - ldr r1, [r5] - adds r0, r4, 0 - bl sub_8041664 - lsls r0, 24 - lsrs r0, 24 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80416A0 - - thumb_func_start sub_80416E8 -sub_80416E8: @ 80416E8 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - adds r1, r4, 0 - bl sub_80416A0 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r6, r0 - ldr r1, _08041720 - adds r0, r6, 0 - bl pokemon_get_nick_ - ldr r0, _08041724 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08041720: .4byte 0x020231cc -_08041724: .4byte 0x020232cc - thumb_func_end sub_80416E8 - - thumb_func_start sub_8041728 -sub_8041728: @ 8041728 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - adds r1, r4, 0 - bl sub_80416A0 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r6, r0 - ldr r1, _08041768 - adds r0, r6, 0 - bl pokemon_get_nick_ - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - adds r4, 0x64 - ldr r0, _0804176C - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08041768: .4byte 0x020231cc -_0804176C: .4byte 0x020232cc - thumb_func_end sub_8041728 - - thumb_func_start sub_8041770 -sub_8041770: @ 8041770 - push {lr} - ldr r0, _08041784 - ldr r1, _08041788 - ldrb r1, [r1] - bl sub_8041728 - ldr r1, _0804178C - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08041784: .4byte 0x020286d0 -_08041788: .4byte 0x0202e8cc -_0804178C: .4byte 0x0202e8ce - thumb_func_end sub_8041770 - - thumb_func_start sub_8041790 -sub_8041790: @ 8041790 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080417AC - ldr r1, _080417B0 - adds r3, r2, r1 - ldr r1, [r3] - adds r1, r0 - str r1, [r3] - ldr r1, _080417B4 - adds r2, r1 - ldr r1, [r2] - adds r1, r0 - str r1, [r2] - bx lr - .align 2, 0 -_080417AC: .4byte 0x02025734 -_080417B0: .4byte 0x000030ac -_080417B4: .4byte 0x000030b0 - thumb_func_end sub_8041790 - - thumb_func_start sub_80417B8 -sub_80417B8: @ 80417B8 - push {r4,r5,lr} - ldr r5, _080417D8 - ldrh r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - ldr r4, _080417DC - adds r0, r4 - movs r1, 0xB - bl PokemonGetEncryptedField - cmp r0, 0 - bne _080417E0 - movs r0, 0 - b _080417EC - .align 2, 0 -_080417D8: .4byte 0x0202e8cc -_080417DC: .4byte 0x020286d0 -_080417E0: - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_80416E8 - lsls r0, 24 - lsrs r0, 24 -_080417EC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80417B8 - - thumb_func_start sub_80417F4 -sub_80417F4: @ 80417F4 - push {lr} - movs r3, 0 - movs r2, 0x7 - adds r1, r0, 0 - adds r1, 0x2B -_080417FE: - strb r3, [r1] - subs r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _080417FE - adds r2, r0, 0 - adds r2, 0x2C - movs r3, 0 - adds r1, r0, 0 - adds r1, 0x36 -_08041812: - strb r3, [r1] - subs r1, 0x1 - cmp r1, r2 - bge _08041812 - bl sub_80A2B40 - pop {r0} - bx r0 - thumb_func_end sub_80417F4 - - thumb_func_start unref_sub_8041824 -unref_sub_8041824: @ 8041824 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 -_0804182A: - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 4 - adds r0, r6, r0 - bl zero_pokemon_boxed_data - movs r1, 0x88 - lsls r1, 1 - adds r0, r6, r1 - adds r0, r4 - movs r4, 0 - str r4, [r0] - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 3 - adds r0, 0xA0 - adds r0, r6, r0 - bl sub_80417F4 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0804182A - movs r2, 0x8C - lsls r2, 1 - adds r0, r6, r2 - movs r1, 0 - strh r4, [r0] - adds r2, 0x2 - adds r0, r6, r2 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end unref_sub_8041824 - - thumb_func_start sub_8041870 -sub_8041870: @ 8041870 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - mov r8, r0 - ldr r0, _0804189C - mov r12, r0 -_08041882: - movs r7, 0 - movs r6, 0x1 - movs r4, 0x80 - lsls r4, 9 - movs r5, 0x28 - mov r3, r12 - adds r3, 0x28 -_08041890: - movs r1, 0 - ldrh r0, [r3, 0x4] - cmp r0, r2 - bne _080418A0 - lsrs r2, r4, 16 - b _080418CC - .align 2, 0 -_0804189C: .4byte gEvolutionTable -_080418A0: - adds r1, 0x1 - cmp r1, 0x4 - bgt _080418B6 - lsls r0, r1, 3 - adds r0, r5 - add r0, r12 - ldrh r0, [r0, 0x4] - cmp r0, r2 - bne _080418A0 - lsrs r2, r4, 16 - movs r7, 0x1 -_080418B6: - cmp r7, 0 - bne _080418CC - movs r0, 0x80 - lsls r0, 9 - adds r4, r0 - adds r5, 0x28 - adds r3, 0x28 - adds r6, 0x1 - ldr r0, _080418EC - cmp r6, r0 - ble _08041890 -_080418CC: - movs r0, 0xCE - lsls r0, 1 - cmp r6, r0 - beq _080418DE - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x4 - ble _08041882 -_080418DE: - adds r0, r2, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080418EC: .4byte 0x0000019b - thumb_func_end sub_8041870 - - thumb_func_start sub_80418F0 -sub_80418F0: @ 80418F0 - push {r4,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08041918 - bl __umodsi3 - adds r0, 0x1 - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - movs r0, 0x86 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08041918: .4byte 0x0000fffe - thumb_func_end sub_80418F0 - - thumb_func_start sub_804191C -sub_804191C: @ 804191C - push {r4,lr} - adds r4, r0, 0 - bl Random - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - movs r2, 0x8C - lsls r2, 1 - adds r4, r2 - orrs r1, r0 - strh r1, [r4] - movs r0, 0x86 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804191C - - thumb_func_start sub_8041940 -sub_8041940: @ 8041940 - push {lr} - ldr r0, _0804194C - bl sub_80418F0 - pop {r0} - bx r0 - .align 2, 0 -_0804194C: .4byte 0x020286d0 - thumb_func_end sub_8041940 - - thumb_func_start sub_8041950 -sub_8041950: @ 8041950 - push {lr} - ldr r0, _0804195C - bl sub_804191C - pop {r0} - bx r0 - .align 2, 0 -_0804195C: .4byte 0x020286d0 - thumb_func_end sub_8041950 - - thumb_func_start sub_8041960 -sub_8041960: @ 8041960 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - movs r2, 0 -_08041972: - mov r1, sp - adds r0, r1, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x5 - ble _08041972 - movs r3, 0 - movs r2, 0 -_08041986: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0xFF - beq _08041998 - adds r0, r4, r3 - strb r1, [r0] - adds r3, 0x1 -_08041998: - adds r2, 0x1 - cmp r2, 0x5 - ble _08041986 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8041960 - - thumb_func_start sub_80419A8 -sub_80419A8: @ 80419A8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r0 - mov r8, r1 - movs r5, 0 - add r1, sp, 0x4 - add r7, sp, 0xC - adds r2, r1, 0 -_080419BE: - adds r0, r2, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080419BE - movs r5, 0 - adds r6, r1, 0 -_080419D0: - bl Random - mov r1, sp - adds r4, r1, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - subs r1, r5 - bl __modsi3 - adds r0, r6, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - adds r0, r6, 0 - bl sub_8041960 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080419D0 - movs r5, 0 - movs r4, 0x1 -_08041A00: - bl Random - adds r1, r7, r5 - lsls r0, 16 - lsrs r0, 16 - ands r0, r4 - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08041A00 - movs r5, 0 -_08041A1A: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08041B02 - lsls r0, 2 - ldr r1, _08041A30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08041A30: .4byte _08041A34 - .align 2, 0 -_08041A34: - .4byte _08041A4C - .4byte _08041A6C - .4byte _08041A88 - .4byte _08041AA4 - .4byte _08041AC0 - .4byte _08041AE2 -_08041A4C: - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x27 - bl PokemonGetEncryptedField - add r2, sp, 0x10 - strb r0, [r2] - mov r0, r9 - movs r1, 0x27 - bl pokemon_setattr - b _08041B02 -_08041A6C: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x28 - bl PokemonGetEncryptedField - strb r0, [r4] - mov r0, r9 - movs r1, 0x28 - b _08041ADA -_08041A88: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x29 - bl PokemonGetEncryptedField - strb r0, [r4] - mov r0, r9 - movs r1, 0x29 - b _08041ADA -_08041AA4: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x2A - bl PokemonGetEncryptedField - strb r0, [r4] - mov r0, r9 - movs r1, 0x2A - b _08041ADA -_08041AC0: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x2B - bl PokemonGetEncryptedField - strb r0, [r4] - mov r0, r9 - movs r1, 0x2B -_08041ADA: - adds r2, r4, 0 - bl pokemon_setattr - b _08041B02 -_08041AE2: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x2C - bl PokemonGetEncryptedField - strb r0, [r4] - mov r0, r9 - movs r1, 0x2C - adds r2, r4, 0 - bl pokemon_setattr -_08041B02: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08041A1A - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80419A8 - - thumb_func_start pokemon_get_eggmoves -pokemon_get_eggmoves: @ 8041B1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - movs r6, 0 - movs r4, 0 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r5, _08041B44 - ldrh r1, [r5] - ldr r7, _08041B48 - adds r0, r3, r7 - cmp r1, r0 - bne _08041B4C - movs r4, 0x1 - b _08041B6E - .align 2, 0 -_08041B44: .4byte gEggMoves -_08041B48: .4byte 0x00004e20 -_08041B4C: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _08041BB8 - ldr r5, _08041BBC - cmp r2, r0 - bhi _08041B6E - lsls r0, r2, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r7, _08041BC0 - adds r0, r3, r7 - cmp r1, r0 - bne _08041B4C - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08041B6E: - movs r2, 0 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r1, _08041BC0 - cmp r0, r1 - bhi _08041BAA - adds r7, r5, 0 - adds r3, r1, 0 -_08041B80: - lsls r1, r2, 1 - add r1, r8 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x9 - bhi _08041BAA - adds r0, r4, r2 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r3 - bls _08041B80 -_08041BAA: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08041BB8: .4byte 0x00000471 -_08041BBC: .4byte gEggMoves -_08041BC0: .4byte 0x00004e20 - thumb_func_end pokemon_get_eggmoves - - thumb_func_start daycare_build_child_moveset -daycare_build_child_moveset: @ 8041BC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - mov r10, r1 - mov r9, r2 - movs r0, 0 - str r0, [sp] - movs r6, 0 - ldr r5, _08041CC8 - movs r2, 0 - ldr r4, _08041CCC - ldr r3, _08041CD0 -_08041BE4: - lsls r1, r6, 1 - adds r0, r1, r5 - strh r2, [r0] - adds r0, r1, r4 - strh r2, [r0] - adds r1, r3 - strh r2, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08041BE4 - movs r6, 0 - ldr r2, _08041CD4 - movs r1, 0 -_08041C02: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _08041C02 - movs r6, 0 - ldr r2, _08041CD8 - movs r1, 0 -_08041C18: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x31 - bls _08041C18 - adds r0, r7, 0 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08041CD8 - bl sub_804051C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r6, 0 - ldr r1, _08041CCC - mov r8, r1 -_08041C46: - adds r5, r6, 0 - adds r5, 0xD - mov r0, r10 - adds r1, r5, 0 - bl PokemonGetEncryptedField - lsls r4, r6, 1 - mov r2, r8 - adds r1, r4, r2 - strh r0, [r1] - mov r0, r9 - adds r1, r5, 0 - bl PokemonGetEncryptedField - ldr r1, _08041CC8 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08041C46 - ldr r1, _08041CD4 - adds r0, r7, 0 - bl pokemon_get_eggmoves - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 -_08041C82: - ldr r0, _08041CCC - lsls r1, r6, 1 - adds r2, r1, r0 - ldrh r1, [r2] - mov r9, r0 - cmp r1, 0 - beq _08041CF8 - movs r5, 0 - cmp r5, r8 - bcs _08041CEA - adds r4, r2, 0 - ldr r2, _08041CDC -_08041C9A: - ldr r0, _08041CD4 - lsls r1, r5, 1 - adds r1, r0 - ldrh r0, [r4] - ldrh r1, [r1] - cmp r0, r1 - bne _08041CE0 - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl pokemon_moveset_pad_ - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08041CEA - ldrh r1, [r4] - adds r0, r7, 0 - bl sub_803B8D4 - b _08041CEA - .align 2, 0 -_08041CC8: .4byte 0x03000500 -_08041CCC: .4byte 0x030004d8 -_08041CD0: .4byte 0x030004e0 -_08041CD4: .4byte 0x030004e8 -_08041CD8: .4byte 0x03000470 -_08041CDC: .4byte 0x0000ffff -_08041CE0: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _08041C9A -_08041CEA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, _08041E14 - mov r9, r3 - cmp r6, 0x3 - bls _08041C82 -_08041CF8: - movs r6, 0 -_08041CFA: - lsls r0, r6, 1 - mov r2, r9 - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r0, 0 - adds r6, 0x1 - mov r8, r6 - cmp r1, 0 - beq _08041D5C - movs r5, 0 - ldr r0, _08041E14 - adds r4, r2, r0 - ldr r6, _08041E18 - mov r9, r0 -_08041D16: - ldr r3, _08041E1C - adds r0, r5, r3 - lsls r0, 16 - lsrs r0, 16 - bl ItemIdToBattleMoveId - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bne _08041D52 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl sub_8040374 - cmp r0, 0 - beq _08041D52 - ldrh r1, [r4] - adds r0, r7, 0 - bl pokemon_moveset_pad_ - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bne _08041D52 - ldrh r1, [r4] - adds r0, r7, 0 - bl sub_803B8D4 -_08041D52: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x39 - bls _08041D16 -_08041D5C: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08041CFA - movs r6, 0 - mov r2, r9 - ldrh r0, [r2] - ldr r3, _08041E20 - mov r10, r3 - cmp r0, 0 - beq _08041DC6 - mov r4, r9 - ldr r0, _08041E24 - mov r9, r0 - mov r12, r10 -_08041D7C: - movs r5, 0 - lsls r2, r6, 1 - adds r6, 0x1 - mov r8, r6 - adds r3, r2, r4 -_08041D86: - lsls r0, r5, 1 - add r0, r9 - ldrh r2, [r3] - adds r1, r2, 0 - ldrh r0, [r0] - cmp r1, r0 - bne _08041DA8 - cmp r1, 0 - beq _08041DA8 - ldr r1, [sp] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 1 - add r1, r12 - strh r2, [r1] -_08041DA8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _08041D86 - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08041DC6 - lsls r0, r6, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _08041D7C -_08041DC6: - movs r6, 0 - mov r2, r10 - ldrh r0, [r2] - cmp r0, 0 - beq _08041E50 -_08041DD0: - movs r5, 0 - adds r3, r6, 0x1 - mov r8, r3 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcs _08041E38 - ldr r2, _08041E18 -_08041DDE: - ldr r1, _08041E28 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08041E2C - lsls r0, r6, 1 - mov r3, r10 - adds r4, r0, r3 - ldrh r0, [r4] - cmp r0, r1 - bne _08041E2C - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl pokemon_moveset_pad_ - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08041E38 - ldrh r1, [r4] - adds r0, r7, 0 - bl sub_803B8D4 - b _08041E38 - .align 2, 0 -_08041E14: .4byte 0x030004d8 -_08041E18: .4byte 0x0000ffff -_08041E1C: .4byte 0x00000121 -_08041E20: .4byte 0x030004e0 -_08041E24: .4byte 0x03000500 -_08041E28: .4byte 0x03000470 -_08041E2C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcc _08041DDE -_08041E38: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08041E50 - ldr r0, _08041E60 - lsls r1, r6, 1 - adds r1, r0 - ldrh r1, [r1] - mov r10, r0 - cmp r1, 0 - bne _08041DD0 -_08041E50: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08041E60: .4byte 0x030004e0 - thumb_func_end daycare_build_child_moveset - - thumb_func_start sub_8041E64 -sub_8041E64: @ 8041E64 - adds r3, r0, 0 - movs r1, 0x8C - lsls r1, 1 - adds r0, r3, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0] - movs r1, 0x8D - lsls r1, 1 - adds r0, r3, r1 - strb r2, [r0] - bx lr - thumb_func_end sub_8041E64 - - thumb_func_start sub_8041E7C -sub_8041E7C: @ 8041E7C - push {lr} - ldr r0, _08041E88 - bl sub_8041E64 - pop {r0} - bx r0 - .align 2, 0 -_08041E88: .4byte 0x020286d0 - thumb_func_end sub_8041E7C - - thumb_func_start incense_effects -incense_effects: @ 8041E8C - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrh r1, [r4] - movs r7, 0xB4 - lsls r7, 1 - cmp r1, r7 - beq _08041EA4 - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08041EE6 -_08041EA4: - adds r0, r5, 0 - movs r1, 0xC - bl PokemonGetEncryptedField - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r0, 0x50 - movs r1, 0xC - bl PokemonGetEncryptedField - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4] - cmp r0, r7 - bne _08041ED0 - cmp r6, 0xDD - beq _08041ED0 - cmp r2, 0xDD - beq _08041ED0 - movs r0, 0xCA - strh r0, [r4] -_08041ED0: - ldrh r1, [r4] - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08041EE6 - cmp r6, 0xDC - beq _08041EE6 - cmp r2, 0xDC - beq _08041EE6 - movs r0, 0xB7 - strh r0, [r4] -_08041EE6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end incense_effects - - thumb_func_start sub_8041EEC -sub_8041EEC: @ 8041EEC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r6, r1, 0 - movs r4, 0 - movs r7, 0x1 -_08041EFC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - lsls r1, r4, 1 - add r1, sp - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bne _08041F26 - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6] - strb r4, [r6, 0x1] - b _08041F3C -_08041F26: - adds r0, r5, 0 - bl pokemon_roll_gender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - bne _08041F3C - strb r4, [r6] - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6, 0x1] -_08041F3C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08041EFC - ldrb r0, [r6] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - bl sub_8041870 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bne _08041F6E - movs r0, 0x8C - lsls r0, 1 - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08041F6E - movs r4, 0x20 -_08041F6E: - ldr r0, _08041FC0 - cmp r4, r0 - bne _08041F88 - subs r0, 0x6B - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08041F88 - movs r4, 0xC1 - lsls r4, 1 -_08041F88: - ldrb r0, [r6, 0x1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - cmp r0, 0x84 - bne _08041FB2 - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - bl pokemon_roll_gender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - beq _08041FB2 - ldrb r1, [r6, 0x1] - ldrb r0, [r6] - strb r0, [r6, 0x1] - strb r1, [r6] -_08041FB2: - adds r0, r4, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08041FC0: .4byte 0x00000183 - thumb_func_end sub_8041EEC - - thumb_func_start sub_8041FC4 -sub_8041FC4: @ 8041FC4 - push {r4-r6,lr} - sub sp, 0x6C - adds r5, r0, 0 - add r6, sp, 0x64 - adds r1, r6, 0 - bl sub_8041EEC - add r4, sp, 0x68 - strh r0, [r4] - adds r0, r4, 0 - adds r1, r5, 0 - bl incense_effects - ldrh r1, [r4] - mov r0, sp - adds r2, r5, 0 - bl sub_80420FC - mov r0, sp - adds r1, r5, 0 - bl sub_80419A8 - ldrb r0, [r6, 0x1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 4 - adds r1, r5, r1 - ldrb r0, [r6] - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 4 - adds r2, r5, r2 - mov r0, sp - bl daycare_build_child_moveset - mov r2, sp - adds r2, 0x6A - movs r0, 0x1 - strb r0, [r2] - mov r0, sp - movs r1, 0x2D - bl pokemon_setattr - ldr r0, _08042040 - movs r1, 0xFA - lsls r1, 1 - adds r0, r1 - mov r1, sp - movs r2, 0x64 - bl memcpy - bl party_compaction - bl calc_player_party_count - adds r0, r5, 0 - bl sub_8041E64 - add sp, 0x6C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042040: .4byte 0x03004360 - thumb_func_end sub_8041FC4 - - thumb_func_start sub_8042044 -sub_8042044: @ 8042044 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r7, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl create_pokemon_set_level - movs r0, 0x12 - add r0, sp - mov r8, r0 - strb r4, [r0] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - movs r0, 0x1 - mov r9, r0 - mov r0, r9 - strb r0, [r4] - adds r0, r7, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl pokemon_setattr - ldr r2, _080420F4 - adds r0, r7, 0 - movs r1, 0x2 - bl pokemon_setattr - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _080420F8 - adds r2, r0 - adds r0, r7, 0 - movs r1, 0x20 - bl pokemon_setattr - adds r0, r7, 0 - movs r1, 0x24 - mov r2, r8 - bl pokemon_setattr - adds r0, r7, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl pokemon_setattr - cmp r6, 0 - beq _080420D6 - add r2, sp, 0x14 - movs r0, 0xFD - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x23 - bl pokemon_setattr -_080420D6: - mov r2, sp - adds r2, 0x15 - mov r0, r9 - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x2D - bl pokemon_setattr - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080420F4: .4byte gUnknown_08209AD4 -_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset - thumb_func_end sub_8042044 - - thumb_func_start sub_80420FC -sub_80420FC: @ 80420FC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - bl Random - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - ldrh r1, [r4] - lsls r0, 16 - orrs r1, r0 - movs r0, 0x1 - mov r8, r0 - str r0, [sp] - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl create_pokemon_set_level - movs r1, 0x12 - add r1, sp - mov r9, r1 - strb r4, [r1] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - mov r0, r8 - strb r0, [r4] - adds r0, r6, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl pokemon_setattr - ldr r2, _08042198 - adds r0, r6, 0 - movs r1, 0x2 - bl pokemon_setattr - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _0804219C - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x20 - bl pokemon_setattr - adds r0, r6, 0 - movs r1, 0x24 - mov r2, r9 - bl pokemon_setattr - adds r0, r6, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl pokemon_setattr - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042198: .4byte gUnknown_08209AD4 -_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset - thumb_func_end sub_80420FC - - thumb_func_start sp0B8_daycare -sp0B8_daycare: @ 80421A0 - push {lr} - ldr r0, _080421AC - bl sub_8041FC4 - pop {r0} - bx r0 - .align 2, 0 -_080421AC: .4byte 0x020286d0 - thumb_func_end sp0B8_daycare - - thumb_func_start sub_80421B0 -sub_80421B0: @ 80421B0 - push {r4-r7,lr} - sub sp, 0x8 - adds r7, r0, 0 - movs r2, 0 - movs r6, 0 - adds r5, r7, 0 -_080421BC: - lsls r4, r6, 2 - adds r0, r5, 0 - movs r1, 0x5 - str r2, [sp, 0x4] - bl PokemonGetEncryptedField - ldr r2, [sp, 0x4] - cmp r0, 0 - beq _080421DE - movs r0, 0x88 - lsls r0, 1 - adds r1, r7, r0 - adds r1, r4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - adds r2, 0x1 -_080421DE: - adds r5, 0x50 - adds r6, 0x1 - cmp r6, 0x1 - bls _080421BC - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08042226 - cmp r2, 0x2 - bne _08042226 - subs r1, 0x4 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08042226 - adds r0, r7, 0 - bl daycare_relationship_score - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08042240 - bl __udivsi3 - cmp r4, r0 - bls _08042226 - bl sub_8041940 -_08042226: - movs r0, 0x8D - lsls r0, 1 - adds r1, r7, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08042290 - movs r6, 0 - b _08042288 - .align 2, 0 -_08042240: .4byte 0x0000ffff -_08042244: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _08042270 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl PokemonGetField - cmp r0, 0 - beq _08042286 - adds r0, r4, 0 - movs r1, 0x20 - bl PokemonGetField - str r0, [sp] - cmp r0, 0 - bne _08042278 - ldr r0, _08042274 - strh r6, [r0] - movs r0, 0x1 - b _08042292 - .align 2, 0 -_08042270: .4byte 0x03004360 -_08042274: .4byte 0x0202e8cc -_08042278: - subs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x20 - mov r2, sp - bl pokemon_setattr -_08042286: - adds r6, 0x1 -_08042288: - ldr r0, _0804229C - ldrb r0, [r0] - cmp r6, r0 - bcc _08042244 -_08042290: - movs r0, 0 -_08042292: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804229C: .4byte 0x03004350 - thumb_func_end sub_80421B0 - - thumb_func_start sub_80422A0 -sub_80422A0: @ 80422A0 - push {lr} - ldr r0, _080422B0 - bl sub_80421B0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080422B0: .4byte 0x020286d0 - thumb_func_end sub_80422A0 - - thumb_func_start sub_80422B4 -sub_80422B4: @ 80422B4 - movs r1, 0x8C - lsls r1, 1 - adds r0, r1 - ldrh r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - thumb_func_end sub_80422B4 - - thumb_func_start sub_80422C4 -sub_80422C4: @ 80422C4 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - cmp r0, 0 - beq _080422FC - ldr r1, _0804231C - adds r0, r6, 0 - bl pokemon_get_nick_ - adds r0, r6, 0 - movs r1, 0x3 - bl PokemonGetEncryptedField - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08042320 - adds r0, r6, 0 - movs r1, 0x7 - adds r2, r5, 0 - bl PokemonGetEncryptedField - adds r0, r5, 0 - adds r1, r4, 0 - bl ConvertInternationalString -_080422FC: - adds r4, r6, 0 - adds r4, 0x50 - adds r0, r4, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - cmp r0, 0 - beq _08042314 - ldr r1, _08042324 - adds r0, r4, 0 - bl pokemon_get_nick_ -_08042314: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804231C: .4byte 0x020231cc -_08042320: .4byte 0x020233cc -_08042324: .4byte 0x020232cc - thumb_func_end sub_80422C4 - - thumb_func_start sub_8042328 -sub_8042328: @ 8042328 - push {r4-r6,lr} - ldr r6, _08042354 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _08042358 - adds r0, r4 - ldr r1, _0804235C - bl pokemon_get_nick_ - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl PokemonGetEncryptedField - lsls r0, 16 - lsrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08042354: .4byte 0x03005ce0 -_08042358: .4byte 0x03004360 -_0804235C: .4byte 0x020231cc - thumb_func_end sub_8042328 - - thumb_func_start sp0B5_daycare -sp0B5_daycare: @ 8042360 - push {lr} - ldr r0, _0804236C - bl sub_80422C4 - pop {r0} - bx r0 - .align 2, 0 -_0804236C: .4byte 0x020286d0 - thumb_func_end sp0B5_daycare - - thumb_func_start sp0B6_daycare -sp0B6_daycare: @ 8042370 - push {r4,lr} - ldr r4, _08042384 - adds r0, r4, 0 - bl sub_80422B4 - lsls r0, 24 - cmp r0, 0 - beq _08042388 - movs r0, 0x1 - b _080423A0 - .align 2, 0 -_08042384: .4byte 0x020286d0 -_08042388: - adds r0, r4, 0 - bl daycare_count_pokemon - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0804239A - movs r0, 0 - b _080423A0 -_0804239A: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_080423A0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sp0B6_daycare - - thumb_func_start sub_80423A8 -sub_80423A8: @ 80423A8 - push {r4-r6,lr} - adds r5, r1, 0 - movs r4, 0 - adds r1, r0, 0 -_080423B0: - movs r3, 0 - ldrh r0, [r1] - adds r2, r5, 0 -_080423B6: - ldrh r6, [r2] - cmp r0, r6 - bne _080423C0 - movs r0, 0x1 - b _080423D2 -_080423C0: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x1 - ble _080423B6 - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x1 - ble _080423B0 - movs r0, 0 -_080423D2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80423A8 - - thumb_func_start daycare_relationship_score -daycare_relationship_score: @ 80423D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r1, 0 - mov r8, r1 - mov r2, sp - adds r2, 0x8 - str r2, [sp, 0x1C] - add r1, sp, 0xC - mov r10, r1 - adds r2, 0xC - str r2, [sp, 0x20] - mov r1, sp - adds r1, 0x2 - ldr r2, _08042488 - mov r9, r2 - ldr r5, [sp, 0x1C] - adds r7, r1, 0 - mov r6, sp - ldr r1, [sp, 0x20] - str r1, [sp, 0x24] - mov r2, r10 - str r2, [sp, 0x28] - adds r4, r0, 0 -_0804240E: - adds r0, r4, 0 - movs r1, 0xB - bl PokemonGetEncryptedField - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl PokemonGetEncryptedField - ldr r1, [sp, 0x28] - stm r1!, {r0} - str r1, [sp, 0x28] - adds r0, r4, 0 - movs r1, 0 - bl PokemonGetEncryptedField - adds r1, r0, 0 - ldrh r0, [r5] - bl pokemon_species_get_gender_info - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x24] - stm r2!, {r0} - str r2, [sp, 0x24] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x14] - strh r0, [r6] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x15] - strh r0, [r7] - adds r5, 0x2 - adds r7, 0x4 - adds r6, 0x4 - adds r4, 0x50 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x1 - bls _0804240E - mov r0, sp - ldrh r1, [r0] - cmp r1, 0xF - beq _08042484 - ldrh r0, [r0, 0x4] - cmp r0, 0xF - beq _08042484 - cmp r1, 0xD - bne _0804248C - cmp r0, 0xD - bne _08042490 -_08042484: - movs r0, 0 - b _080424E4 - .align 2, 0 -_08042488: .4byte gBaseStats -_0804248C: - cmp r0, 0xD - bne _0804249C -_08042490: - ldr r1, [sp, 0xC] - mov r2, r10 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _080424DE - b _080424E2 -_0804249C: - ldr r0, [sp, 0x14] - ldr r2, [sp, 0x20] - ldr r1, [r2, 0x4] - cmp r0, r1 - beq _08042484 - cmp r0, 0xFF - beq _08042484 - cmp r1, 0xFF - beq _08042484 - add r1, sp, 0x4 - mov r0, sp - bl sub_80423A8 - lsls r0, 24 - cmp r0, 0 - beq _08042484 - ldr r0, [sp, 0x1C] - ldrh r1, [r0, 0x2] - ldrh r0, [r0] - cmp r0, r1 - bne _080424D4 - ldr r1, [sp, 0xC] - mov r2, r10 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _080424E2 - movs r0, 0x46 - b _080424E4 -_080424D4: - ldr r1, [sp, 0xC] - mov r2, r10 - ldr r0, [r2, 0x4] - cmp r1, r0 - bne _080424E2 -_080424DE: - movs r0, 0x14 - b _080424E4 -_080424E2: - movs r0, 0x32 -_080424E4: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end daycare_relationship_score - - thumb_func_start daycare_relationship_score_from_savegame -daycare_relationship_score_from_savegame: @ 80424F4 - push {lr} - ldr r0, _08042504 - bl daycare_relationship_score - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08042504: .4byte 0x020286d0 - thumb_func_end daycare_relationship_score_from_savegame - - thumb_func_start sp0B9_daycare_relationship_comment -sp0B9_daycare_relationship_comment: @ 8042508 - push {lr} - bl daycare_relationship_score_from_savegame - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - movs r1, 0 - cmp r0, 0 - bne _0804251C - movs r1, 0x3 -_0804251C: - cmp r0, 0x14 - bne _08042522 - movs r1, 0x2 -_08042522: - cmp r0, 0x32 - bne _08042528 - movs r1, 0x1 -_08042528: - cmp r2, 0x46 - bne _0804252E - movs r1, 0 -_0804252E: - ldr r0, _08042540 - ldr r2, _08042544 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_08042540: .4byte 0x020234cc -_08042544: .4byte gUnknown_08209AC4 - thumb_func_end sp0B9_daycare_relationship_comment - - thumb_func_start sub_8042548 -sub_8042548: @ 8042548 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - mov r2, sp - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x1] - strb r0, [r2] - movs r3, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _0804258C -_08042564: - adds r1, r4, r3 - ldrb r0, [r1] - cmp r0, 0xB5 - bne _08042572 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] -_08042572: - ldrb r0, [r1] - cmp r0, 0xB6 - bne _0804257E - ldrb r0, [r2, 0x1] - adds r0, 0x1 - strb r0, [r2, 0x1] -_0804257E: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08042564 -_0804258C: - cmp r5, 0 - bne _080425A0 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _080425A0 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080425B4 -_080425A0: - cmp r5, 0xFE - bne _080425B8 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080425B8 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _080425B8 -_080425B4: - movs r0, 0x1 - b _080425BA -_080425B8: - movs r0, 0 -_080425BA: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8042548 - - thumb_func_start sub_80425C4 -sub_80425C4: @ 80425C4 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _080425E4 - movs r1, 0 - bl sub_8042548 - lsls r0, 24 - cmp r0, 0 - bne _08042600 - ldr r1, _080425E0 - b _08042602 - .align 2, 0 -_080425E0: .4byte gUnknown_0820C33D -_080425E4: - cmp r1, 0xFE - bne _08042600 - adds r0, r4, 0 - movs r1, 0xFE - bl sub_8042548 - lsls r0, 24 - cmp r0, 0 - bne _08042600 - ldr r1, _080425FC - b _08042602 - .align 2, 0 -_080425FC: .4byte gUnknown_0820C33F -_08042600: - ldr r1, _08042610 -_08042602: - adds r0, r4, 0 - bl StringAppend - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08042610: .4byte gUnknown_0820C341 - thumb_func_end sub_80425C4 - - thumb_func_start sub_8042614 -sub_8042614: @ 8042614 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - bl pokemon_roll_gender - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_80425C4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8042614 - - thumb_func_start sub_8042630 -sub_8042630: @ 8042630 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x28 - mov r8, r0 - adds r7, r1, 0 - movs r0, 0xFF - strb r0, [r7] - movs r6, 0 - add r0, sp, 0x14 - mov r9, r0 -_08042648: - lsls r0, r6, 2 - adds r0, r6 - lsls r4, r0, 4 - add r4, r8 - lsls r0, 2 - mov r1, sp - adds r5, r1, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl pokemon_get_nick_ - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8042614 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bls _08042648 - adds r0, r7, 0 - mov r1, sp - bl StringCopy - ldr r4, _080426A8 - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - adds r0, r7, 0 - mov r1, r9 - bl StringAppend - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - ldr r1, _080426AC - adds r0, r7, 0 - bl StringAppend - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080426A8: .4byte gUnknown_0842CC28 -_080426AC: .4byte gUnknown_0842CC2A - thumb_func_end sub_8042630 - - thumb_func_start sub_80426B0 -sub_80426B0: @ 80426B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - movs r0, 0xFF - strb r0, [r4] - movs r5, 0 - movs r0, 0xFC - mov r8, r0 - movs r7, 0x14 -_080426C6: - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 4 - adds r0, r6, r0 - movs r3, 0x88 - lsls r3, 1 - adds r1, r6, r3 - adds r1, r2 - ldr r1, [r1] - bl sub_8041664 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x34 - strb r0, [r4] - mov r0, r8 - strb r0, [r4, 0x1] - strb r7, [r4, 0x2] - movs r0, 0x6 - strb r0, [r4, 0x3] - adds r0, r4, 0x4 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r4, r0, 0 - mov r3, r8 - strb r3, [r4] - strb r7, [r4, 0x1] - movs r0, 0 - strb r0, [r4, 0x2] - adds r0, r4, 0x3 - ldr r1, _08042728 - bl StringCopy - adds r4, r0, 0 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _080426C6 - movs r0, 0xFF - strb r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042728: .4byte gUnknown_0842CC28 - thumb_func_end sub_80426B0 - - thumb_func_start sub_804272C -sub_804272C: @ 804272C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, _08042760 - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08042768 - ldr r0, _08042764 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08042816 - subs r0, r2, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 - negs r0, r0 - b _0804278A - .align 2, 0 -_08042760: .4byte 0x03001770 -_08042764: .4byte 0x03004b20 -_08042768: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804279C - ldr r0, _08042798 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0x2 - beq _08042816 - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 -_0804278A: - bl MoveMenuCursor - movs r0, 0x5 - bl audio_play - b _08042816 - .align 2, 0 -_08042798: .4byte 0x03004b20 -_0804279C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080427E8 - bl sub_8072DEC - movs r0, 0x5 - bl audio_play - ldr r3, _080427DC - ldr r2, _080427E0 - ldr r1, _080427E4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - strh r0, [r2] - strb r0, [r3] - adds r0, r4, 0 - bl DestroyTask - movs r0, 0xF - movs r1, 0x6 - movs r2, 0x1D - movs r3, 0xD - bl Reset - bl script_env_2_enable_and_set_ctx_running - b _08042816 - .align 2, 0 -_080427DC: .4byte 0x03005ce0 -_080427E0: .4byte 0x0202e8dc -_080427E4: .4byte 0x03004b20 -_080427E8: - movs r4, 0x2 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08042816 - bl sub_8072DEC - ldr r0, _0804281C - ldr r1, _08042820 - strh r4, [r1] - movs r1, 0x2 - strb r1, [r0] - adds r0, r5, 0 - bl DestroyTask - movs r0, 0xF - movs r1, 0x6 - movs r2, 0x1D - movs r3, 0xD - bl Reset - bl script_env_2_enable_and_set_ctx_running -_08042816: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804281C: .4byte 0x03005ce0 -_08042820: .4byte 0x0202e8dc - thumb_func_end sub_804272C - - thumb_func_start sub_8042824 -sub_8042824: @ 8042824 - push {r4,lr} - sub sp, 0x6C - movs r0, 0xF - movs r1, 0x6 - movs r2, 0x1D - movs r3, 0xD - bl DrawDefaultWindow - ldr r4, _08042880 - adds r0, r4, 0 - add r1, sp, 0x8 - bl sub_8042630 - add r0, sp, 0x8 - movs r1, 0x10 - movs r2, 0x7 - bl Print - adds r0, r4, 0 - add r1, sp, 0x8 - bl sub_80426B0 - add r0, sp, 0x8 - movs r1, 0xCE - movs r2, 0x38 - movs r3, 0x1 - bl sub_80729D8 - movs r0, 0 - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x10 - movs r2, 0x7 - movs r3, 0x3 - bl InitMenu - ldr r0, _08042884 - movs r1, 0x3 - bl CreateTask - add sp, 0x6C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08042880: .4byte 0x020286d0 -_08042884: .4byte sub_804272C - thumb_func_end sub_8042824 - - thumb_func_start sub_8042888 -sub_8042888: @ 8042888 - push {lr} - movs r0, 0x6 - movs r1, 0 - bl sub_806AFAC - ldr r1, _0804289C - ldr r0, _080428A0 - str r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0804289C: .4byte 0x03001770 -_080428A0: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_8042888 - - thumb_func_start sub_80428A4 -sub_80428A4: @ 80428A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x48 - adds r6, r0, 0 - adds r5, r1, 0 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - movs r4, 0 - add r7, sp, 0x18 - mov r0, sp - adds r0, 0x31 - str r0, [sp, 0x38] - mov r1, sp - adds r1, 0x32 - str r1, [sp, 0x3C] - add r0, sp, 0x30 - mov r9, r0 - adds r1, 0x1 - str r1, [sp, 0x40] - mov r0, sp - adds r0, 0x34 - str r0, [sp, 0x44] -_080428DE: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl PokemonGetField - lsls r1, r4, 1 - add r1, sp - adds r1, 0x10 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080428DE - adds r0, r6, 0 - movs r1, 0 - bl PokemonGetField - mov r8, r0 - movs r4, 0 -_08042906: - adds r1, r4, 0 - adds r1, 0x27 - adds r0, r6, 0 - bl PokemonGetField - lsls r1, r4, 2 - adds r1, r7, r1 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08042906 - adds r0, r6, 0 - movs r1, 0x25 - bl PokemonGetField - ldr r1, [sp, 0x38] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x8 - bl PokemonGetField - ldr r1, [sp, 0x3C] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x22 - bl PokemonGetField - str r0, [sp, 0x34] - movs r0, 0x1 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r1, r10 - movs r2, 0x5 - movs r3, 0x20 - bl create_pokemon_set_level - movs r4, 0 -_0804295E: - adds r1, r4, 0 - adds r1, 0xD - lsls r0, r4, 1 - mov r2, sp - adds r2, r0 - adds r2, 0x10 - adds r0, r5, 0 - bl pokemon_setattr - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0804295E - movs r4, 0 -_0804297C: - adds r1, r4, 0 - adds r1, 0x27 - lsls r2, r4, 2 - adds r2, r7, r2 - adds r0, r5, 0 - bl pokemon_setattr - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0804297C - movs r0, 0x2 - mov r1, r9 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x3 - mov r2, r9 - bl pokemon_setattr - adds r0, r5, 0 - movs r1, 0x25 - ldr r2, [sp, 0x38] - bl pokemon_setattr - adds r0, r5, 0 - movs r1, 0x8 - ldr r2, [sp, 0x3C] - bl pokemon_setattr - movs r0, 0x78 - ldr r1, [sp, 0x40] - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x20 - ldr r2, [sp, 0x40] - bl pokemon_setattr - adds r0, r5, 0 - movs r1, 0x22 - ldr r2, [sp, 0x44] - bl pokemon_setattr - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - add sp, 0x48 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80428A4 - - thumb_func_start sub_80429EC -sub_80429EC: @ 80429EC - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r5, r0, 0 - muls r5, r1 - ldr r0, _08042A9C - adds r5, r0 - ldr r1, _08042AA0 - adds r0, r5, 0 - bl sub_80428A4 - add r2, sp, 0xC - movs r6, 0 - strb r6, [r2] - adds r0, r5, 0 - movs r1, 0x2D - bl pokemon_setattr - adds r0, r5, 0 - movs r1, 0xB - bl PokemonGetField - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - adds r1, r4, 0 - bl GetSpeciesName - adds r0, r5, 0 - movs r1, 0x2 - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8090D90 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8090D90 - ldr r1, _08042AA4 - adds r0, r5, 0 - bl pokemon_get_nick - mov r2, sp - adds r2, 0xE - movs r0, 0x4 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x26 - bl pokemon_setattr - add r2, sp, 0x10 - strh r6, [r2] - adds r0, r5, 0 - movs r1, 0x24 - bl pokemon_setattr - bl sav1_map_get_name - mov r2, sp - adds r2, 0x12 - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0x23 - bl pokemon_setattr - adds r0, r5, 0 - bl sub_8040B1C - adds r0, r5, 0 - bl pokemon_calc_effective_stats - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042A9C: .4byte 0x03004360 -_08042AA0: .4byte 0x030045c0 -_08042AA4: .4byte 0x020231cc - thumb_func_end sub_80429EC - - thumb_func_start sub_8042AA8 -sub_8042AA8: @ 8042AA8 - push {lr} - ldr r0, _08042AB8 - ldrb r0, [r0] - bl sub_80429EC - pop {r0} - bx r0 - .align 2, 0 -_08042AB8: .4byte 0x0202e8cc - thumb_func_end sub_8042AA8 - - thumb_func_start sub_8042ABC -sub_8042ABC: @ 8042ABC - push {r4-r6,lr} - sub sp, 0x20 - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r5, r0 - mov r1, sp - bl pokemon_get_nick_ - lsls r0, r4, 3 - subs r0, r4 - lsls r1, r0, 3 - adds r0, r5, r1 - adds r0, 0xC0 - ldrh r0, [r0] - cmp r0, 0 - beq _08042B40 - adds r0, r1, 0 - adds r0, 0xA0 - adds r5, r0 - adds r6, r5, 0 - adds r6, 0x2C - mov r0, sp - adds r1, r6, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _08042B08 - ldr r0, _08042B30 - adds r1, r5, 0 - adds r1, 0x24 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _08042B40 -_08042B08: - ldr r0, _08042B34 - mov r1, sp - bl StringCopy - ldr r4, _08042B38 - adds r1, r5, 0 - adds r1, 0x24 - adds r0, r4, 0 - bl StringCopy - ldr r0, _08042B3C - adds r1, r6, 0 - bl StringCopy - adds r0, r4, 0 - bl sub_814A568 - movs r0, 0x1 - b _08042B42 - .align 2, 0 -_08042B30: .4byte 0x02024ea4 -_08042B34: .4byte 0x020231cc -_08042B38: .4byte 0x020232cc -_08042B3C: .4byte 0x020233cc -_08042B40: - movs r0, 0 -_08042B42: - add sp, 0x20 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8042ABC - - thumb_func_start sub_8042B4C -sub_8042B4C: @ 8042B4C - push {lr} - ldr r0, _08042B60 - ldr r1, _08042B64 - ldrb r1, [r1] - bl sub_8042ABC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08042B60: .4byte 0x020286d0 -_08042B64: .4byte 0x0202e8cc - thumb_func_end sub_8042B4C - - thumb_func_start sub_8042B68 -sub_8042B68: @ 8042B68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r1, r2, 24 - adds r2, r1, 0 - movs r5, 0 - mov r9, r5 - movs r7, 0 - cmp r3, 0 - bne _08042B96 - movs r0, 0x64 - muls r1, r0 - ldr r0, _08042BB0 - adds r7, r1, r0 - movs r5, 0x1 -_08042B96: - cmp r3, 0x1 - bne _08042BA6 - movs r0, 0x64 - adds r1, r2, 0 - muls r1, r0 - ldr r0, _08042BB0 - adds r7, r1, r0 - movs r5, 0x3 -_08042BA6: - cmp r6, 0 - beq _08042BB4 - cmp r6, 0x1 - beq _08042C14 - b _08042C50 - .align 2, 0 -_08042BB0: .4byte 0x03004360 -_08042BB4: - adds r0, r7, 0 - movs r1, 0xB - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r7, 0 - movs r1, 0 - bl PokemonGetField - mov r8, r0 - lsls r0, r5, 3 - ldr r1, _08042C04 - adds r0, r1 - ldr r1, _08042C08 - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r3, _08042C0C - ldr r6, _08042C10 - lsls r4, 1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r6 - ldr r4, [r4] - str r4, [sp] - str r5, [sp, 0x4] - mov r4, r8 - str r4, [sp, 0x8] - bl sub_800D334 - adds r0, r7, 0 - bl sub_8040990 - bl LoadCompressedObjectPalette - b _08042C50 - .align 2, 0 -_08042C04: .4byte gMonFrontPicTable -_08042C08: .4byte gMonFrontPicCoords -_08042C0C: .4byte 0x02000000 -_08042C10: .4byte gUnknown_081FAF4C -_08042C14: - adds r0, r7, 0 - bl sub_8040990 - ldrh r0, [r0, 0x4] - adds r1, r5, 0 - bl gpu_pal_obj_decompress_and_apply - ldr r0, _08042C60 - movs r1, 0x78 - movs r2, 0x46 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _08042C64 - lsls r1, r0, 4 - add r1, r9 - lsls r1, 2 - adds r2, r1, r4 - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2] - adds r4, 0x1C - adds r1, r4 - ldr r0, _08042C68 - str r0, [r1] -_08042C50: - mov r0, r9 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08042C60: .4byte 0x02024e8c -_08042C64: .4byte 0x02020004 -_08042C68: .4byte SpriteCallbackDummy - thumb_func_end sub_8042B68 - - thumb_func_start sub_8042C6C -sub_8042C6C: @ 8042C6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8042C6C - - thumb_func_start sub_8042C80 -sub_8042C80: @ 8042C80 - push {lr} - sub sp, 0x4 - bl script_env_2_enable - ldr r0, _08042CA8 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08042CA8: .4byte sub_8042CAC - thumb_func_end sub_8042C80 - - thumb_func_start sub_8042CAC -sub_8042CAC: @ 8042CAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08042CD8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08042CD0 - ldr r0, _08042CDC - bl SetMainCallback2 - ldr r1, _08042CE0 - ldr r0, _08042CE4 - str r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_08042CD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08042CD8: .4byte 0x0202f388 -_08042CDC: .4byte sub_8042CE8 -_08042CE0: .4byte 0x0300485c -_08042CE4: .4byte sub_8080990 - thumb_func_end sub_8042CAC - - thumb_func_start sub_8042CE8 -sub_8042CE8: @ 8042CE8 - push {r4-r7,lr} - ldr r0, _08042D04 - ldr r1, _08042D08 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bls _08042CF8 - b _08042F6E -_08042CF8: - lsls r0, 2 - ldr r1, _08042D0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08042D04: .4byte 0x03001770 -_08042D08: .4byte 0x0000043c -_08042D0C: .4byte _08042D10 - .align 2, 0 -_08042D10: - .4byte _08042D34 - .4byte _08042D90 - .4byte _08042DC4 - .4byte _08042E20 - .4byte _08042E40 - .4byte _08042E74 - .4byte _08042E88 - .4byte _08042EB0 - .4byte _08042F40 -_08042D34: - movs r0, 0x80 - lsls r0, 19 - movs r2, 0 - strh r2, [r0] - ldr r1, _08042D74 - ldr r0, _08042D78 - str r0, [r1] - ldr r1, _08042D7C - ldrh r1, [r1] - strb r1, [r0, 0x4] - adds r0, 0x3A - strb r2, [r0] - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _08042D80 - bl SetVBlankCallback - ldr r1, _08042D84 - ldr r2, _08042D88 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl current_map_music_get - ldr r1, _08042D8C - strh r0, [r1] - b _08042F6E - .align 2, 0 -_08042D74: .4byte 0x0300481c -_08042D78: .4byte 0x02018000 -_08042D7C: .4byte 0x0202e8cc -_08042D80: .4byte sub_8042C6C -_08042D84: .4byte 0x03001770 -_08042D88: .4byte 0x0000043c -_08042D8C: .4byte 0x0202e8ce -_08042D90: - ldr r5, _08042DBC - adds r0, r5, 0 - bl SetUpWindowConfig - ldr r4, _08042DC0 - ldr r0, [r4] - adds r0, 0x8 - adds r1, r5, 0 - bl InitWindowFromConfig - movs r0, 0x14 - bl sub_8064EF4 - ldr r1, [r4] - adds r1, 0x38 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x8 - bl sub_8064F08 - b _08042F04 - .align 2, 0 -_08042DBC: .4byte gWindowConfig_81E6F84 -_08042DC0: .4byte 0x0300481c -_08042DC4: - ldr r0, _08042DFC - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _08042E00 - ldr r4, _08042E04 - movs r2, 0x80 - lsls r2, 4 - adds r1, r4, 0 - bl CpuSet - ldr r1, _08042E08 - str r4, [r1] - ldr r0, _08042E0C - str r0, [r1, 0x4] - ldr r0, _08042E10 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, _08042E14 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, _08042E18 - ldr r2, _08042E1C - adds r1, r2 - b _08042F0A - .align 2, 0 -_08042DFC: .4byte gUnknown_08D00000 -_08042E00: .4byte gUnknown_08D00524 -_08042E04: .4byte 0x02000000 -_08042E08: .4byte 0x040000d4 -_08042E0C: .4byte 0x06002800 -_08042E10: .4byte 0x80000280 -_08042E14: .4byte gUnknown_08D004E0 -_08042E18: .4byte 0x03001770 -_08042E1C: .4byte 0x0000043c -_08042E20: - ldr r0, _08042E34 - bl LoadSpriteSheet - ldr r0, _08042E38 - bl LoadSpriteSheet - ldr r0, _08042E3C - bl LoadSpritePalette - b _08042F04 - .align 2, 0 -_08042E34: .4byte gUnknown_0820A3B0 -_08042E38: .4byte gUnknown_0820A3B8 -_08042E3C: .4byte gUnknown_0820A3C0 -_08042E40: - ldr r0, _08042E64 - movs r1, 0x78 - movs r2, 0x4B - movs r3, 0x5 - bl CreateSprite - ldr r2, _08042E68 - ldr r1, [r2] - strb r0, [r1] - ldr r0, [r2] - ldrb r0, [r0, 0x4] - bl sub_80429EC - ldr r1, _08042E6C - ldr r2, _08042E70 - adds r1, r2 - b _08042F0A - .align 2, 0 -_08042E64: .4byte gSpriteTemplate_820A3C8 -_08042E68: .4byte 0x0300481c -_08042E6C: .4byte 0x03001770 -_08042E70: .4byte 0x0000043c -_08042E74: - ldr r0, _08042E84 - ldr r0, [r0] - ldrb r2, [r0, 0x4] - movs r0, 0 - movs r1, 0 - bl sub_8042B68 - b _08042F04 - .align 2, 0 -_08042E84: .4byte 0x0300481c -_08042E88: - ldr r4, _08042EA4 - ldr r0, [r4] - ldrb r2, [r0, 0x4] - movs r0, 0 - movs r1, 0x1 - bl sub_8042B68 - ldr r1, [r4] - strb r0, [r1, 0x1] - ldr r1, _08042EA8 - ldr r2, _08042EAC - adds r1, r2 - b _08042F0A - .align 2, 0 -_08042EA4: .4byte 0x0300481c -_08042EA8: .4byte 0x03001770 -_08042EAC: .4byte 0x0000043c -_08042EB0: - ldr r0, _08042F14 - ldr r2, _08042F18 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _08042F1C - movs r1, 0x10 - movs r2, 0xA0 - bl LoadPalette - ldr r3, _08042F20 - ldr r4, _08042F24 - movs r5, 0x98 - lsls r5, 5 - ldr r1, _08042F28 - ldr r6, _08042F2C - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_08042ED6: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _08042ED6 - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _08042F30 - ldr r2, _08042F34 - ldr r0, _08042F28 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08042F2C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] -_08042F04: - ldr r1, _08042F38 - ldr r0, _08042F3C - adds r1, r0 -_08042F0A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08042F6E - .align 2, 0 -_08042F14: .4byte 0x0400000c -_08042F18: .4byte 0x00004c06 -_08042F1C: .4byte gUnknown_0820C9F8 -_08042F20: .4byte gUnknown_0820CA98 -_08042F24: .4byte 0x06004000 -_08042F28: .4byte 0x040000d4 -_08042F2C: .4byte 0x80000800 -_08042F30: .4byte gUnknown_0820F798 -_08042F34: .4byte 0x06006000 -_08042F38: .4byte 0x03001770 -_08042F3C: .4byte 0x0000043c -_08042F40: - ldr r1, _08042F74 - ldr r2, _08042F78 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08042F7C - movs r4, 0 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r0, _08042F80 - bl SetMainCallback2 - ldr r0, _08042F84 - ldr r0, [r0] - strb r4, [r0, 0x2] -_08042F6E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042F74: .4byte 0x0400000a -_08042F78: .4byte 0x00000501 -_08042F7C: .4byte 0x04000010 -_08042F80: .4byte sub_804300C -_08042F84: .4byte 0x0300481c - thumb_func_end sub_8042CE8 - - thumb_func_start sub_8042F88 -sub_8042F88: @ 8042F88 - push {lr} - ldr r0, _08042FA8 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08042FAC - adds r0, r1 - ldr r2, _08042FB0 - movs r1, 0x2 - bl pokemon_setattr - ldr r0, _08042FB4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08042FA8: .4byte 0x0202e8cc -_08042FAC: .4byte 0x03004360 -_08042FB0: .4byte 0x020233cc -_08042FB4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_8042F88 - - thumb_func_start c3_080472E4 -c3_080472E4: @ 8042FB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08043004 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08042FD4 - bl sub_8074D08 -_08042FD4: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08042FE4 - movs r0, 0xBC - lsls r0, 1 - bl sub_8075474 -_08042FE4: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x3C - ble _08042FF8 - ldr r0, _08043008 - bl sub_8075474 - adds r0, r5, 0 - bl DestroyTask -_08042FF8: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043004: .4byte 0x03004b20 -_08043008: .4byte 0x00000179 - thumb_func_end c3_080472E4 - - thumb_func_start sub_804300C -sub_804300C: @ 804300C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r1, _08043030 - ldr r0, [r1] - ldrb r0, [r0, 0x2] - adds r5, r1, 0 - cmp r0, 0xB - bls _08043026 - b _080432BA -_08043026: - lsls r0, 2 - ldr r1, _08043034 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08043030: .4byte 0x0300481c -_08043034: .4byte _08043038 - .align 2, 0 -_08043038: - .4byte _08043068 - .4byte _080430A0 - .4byte _080430C0 - .4byte _080430F8 - .4byte _08043124 - .4byte _08043164 - .4byte _08043172 - .4byte _08043180 - .4byte _080431B8 - .4byte _080431DA - .4byte _08043288 - .4byte _080432A8 -_08043068: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08043098 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, _0804309C - movs r1, 0x5 - bl CreateTask - b _080432BA - .align 2, 0 -_08043098: .4byte 0x0300481c -_0804309C: .4byte c3_080472E4 -_080430A0: - ldr r0, _080430BC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080430B2 - b _080432BA -_080430B2: - ldr r0, [r5] - strb r1, [r0, 0x3] - ldr r1, [r5] - b _0804329C - .align 2, 0 -_080430BC: .4byte 0x0202f388 -_080430C0: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bhi _080430D2 - b _080432BA -_080430D2: - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r2, _080430F0 - ldr r0, [r5] - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080430F4 - str r1, [r0] - b _080432BA - .align 2, 0 -_080430F0: .4byte 0x02020004 -_080430F4: .4byte sub_80432E4 -_080430F8: - ldr r2, _0804311C - ldr r3, [r5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08043120 - cmp r1, r0 - beq _08043112 - b _080432BA -_08043112: - ldrb r0, [r3, 0x2] - adds r0, 0x1 - strb r0, [r3, 0x2] - b _080432BA - .align 2, 0 -_0804311C: .4byte 0x02020004 -_08043120: .4byte SpriteCallbackDummy -_08043124: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08043150 - adds r0, r1 - ldr r1, _08043154 - bl pokemon_get_nick - ldr r4, _08043158 - ldr r1, _0804315C - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - bl sub_80436FC - ldr r0, _08043160 - bl fanfare_play - ldr r1, [r5] - b _0804329C - .align 2, 0 -_08043150: .4byte 0x03004360 -_08043154: .4byte 0x020231cc -_08043158: .4byte 0x020234cc -_0804315C: .4byte gUnknown_0842CC38 -_08043160: .4byte 0x00000173 -_08043164: - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - bne _08043170 - b _080432BA -_08043170: - b _08043298 -_08043172: - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - bne _0804317E - b _080432BA -_0804317E: - b _08043298 -_08043180: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080431A8 - adds r0, r1 - ldr r1, _080431AC - bl pokemon_get_nick - ldr r4, _080431B0 - ldr r1, _080431B4 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - bl sub_80436D4 - ldr r1, [r5] - b _0804329C - .align 2, 0 -_080431A8: .4byte 0x03004360 -_080431AC: .4byte 0x020231cc -_080431B0: .4byte 0x020234cc -_080431B4: .4byte gUnknown_0842CC5A -_080431B8: - bl sub_8043724 - lsls r0, 24 - cmp r0, 0 - beq _080432BA - movs r0, 0x16 - movs r1, 0x8 - movs r2, 0x1B - movs r3, 0xD - bl DrawDefaultWindow - movs r0, 0x16 - movs r1, 0x8 - movs r2, 0x4 - bl sub_807292C - b _08043298 -_080431DA: - bl FillWindowPixelBuffer - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - movs r1, 0x2 - negs r1, r1 - cmp r0, r1 - beq _080432BA - lsls r0, r2, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08043298 - cmp r1, 0x1 - beq _08043298 - ldr r0, _08043278 - mov r9, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - movs r1, 0x64 - mov r8, r1 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldr r6, _0804327C - adds r0, r6 - ldr r1, _08043280 - mov r10, r1 - bl pokemon_get_nick - mov r2, r9 - ldr r0, [r2] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r2, r9 - ldr r0, [r2] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - bl pokemon_get_gender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r2, r9 - ldr r0, [r2] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0 - movs r2, 0 - bl PokemonGetField - str r0, [sp] - ldr r0, _08043284 - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r10 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - b _080432BA - .align 2, 0 -_08043278: .4byte 0x0300481c -_0804327C: .4byte 0x03004360 -_08043280: .4byte 0x020233cc -_08043284: .4byte sub_8042F88 -_08043288: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08043298: - ldr r0, _080432A4 - ldr r1, [r0] -_0804329C: - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _080432BA - .align 2, 0 -_080432A4: .4byte 0x0300481c -_080432A8: - ldr r0, _080432DC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080432BA - ldr r0, _080432E0 - bl SetMainCallback2 -_080432BA: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080432DC: .4byte 0x0202f388 -_080432E0: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_804300C - - thumb_func_start sub_80432E4 -sub_80432E4: @ 80432E4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _08043304 - ldr r0, _08043300 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x2E] - b _08043334 - .align 2, 0 -_08043300: .4byte sub_804333C -_08043304: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x1 - bl sine - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08043334 - movs r0, 0x17 - bl audio_play - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - bl sub_80435FC -_08043334: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80432E4 - - thumb_func_start sub_804333C -sub_804333C: @ 804333C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08043398 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _0804336C - ldr r0, _08043368 - str r0, [r4, 0x1C] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x32] - b _08043398 - .align 2, 0 -_08043368: .4byte sub_80433A0 -_0804336C: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl sine - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08043398 - movs r0, 0x17 - bl audio_play - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_08043398: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804333C - - thumb_func_start sub_80433A0 -sub_80433A0: @ 80433A0 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r6, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _0804345A - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x26 - ble _08043418 - ldr r0, _08043404 - str r0, [r4, 0x1C] - strh r6, [r4, 0x2E] - ldr r5, _08043408 - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0804340C - adds r0, r1 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - ldr r4, _08043410 - ldr r3, [r5] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r6, [r1, 0x24] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _08043414 - lsrs r0, 14 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r1, 0x26] - b _0804345A - .align 2, 0 -_08043404: .4byte sub_8043460 -_08043408: .4byte 0x0300481c -_0804340C: .4byte 0x03004360 -_08043410: .4byte 0x02020004 -_08043414: .4byte gMonFrontPicCoords -_08043418: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl sine - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _0804344C - movs r0, 0x17 - bl audio_play - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - bl sub_80435FC - bl sub_80435FC -_0804344C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1E - bne _0804345A - movs r0, 0x17 - bl audio_play -_0804345A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80433A0 - - thumb_func_start sub_8043460 -sub_8043460: @ 8043460 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _0804347A - ldr r0, _08043480 - str r0, [r1, 0x1C] - movs r0, 0 - strh r0, [r1, 0x2E] -_0804347A: - pop {r0} - bx r0 - .align 2, 0 -_08043480: .4byte sub_8043484 - thumb_func_end sub_8043460 - - thumb_func_start sub_8043484 -sub_8043484: @ 8043484 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080434A4 - movs r1, 0x1 - negs r1, r1 - ldr r0, _080434F8 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_080434A4: - ldrh r0, [r5, 0x2E] - cmp r0, 0x3 - bhi _080434C0 - movs r4, 0 -_080434AC: - bl sub_80435FC - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080434AC -_080434C0: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - ldr r0, _080434FC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080434EE - movs r0, 0x71 - bl audio_play - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08043500 - str r0, [r5, 0x1C] - strh r4, [r5, 0x2E] -_080434EE: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080434F8: .4byte 0x0000ffff -_080434FC: .4byte 0x0202f388 -_08043500: .4byte sub_8043504 - thumb_func_end sub_8043484 - - thumb_func_start sub_8043504 -sub_8043504: @ 8043504 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08043540 - ldr r4, _08043594 - ldr r3, _08043598 - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08043540: - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x8 - bne _0804355A - movs r1, 0x1 - negs r1, r1 - ldr r0, _0804359C - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0804355A: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x9 - bgt _08043578 - ldr r2, _08043594 - ldr r0, _08043598 - ldr r0, [r0] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_08043578: - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x28 - ble _08043586 - ldr r0, _080435A0 - str r0, [r5, 0x1C] -_08043586: - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043594: .4byte 0x02020004 -_08043598: .4byte 0x0300481c -_0804359C: .4byte 0x0000ffff -_080435A0: .4byte SpriteCallbackDummy - thumb_func_end sub_8043504 - - thumb_func_start sub_80435A4 -sub_80435A4: @ 80435A4 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - ldrh r3, [r2, 0x38] - adds r0, r1, r3 - strh r0, [r2, 0x38] - movs r4, 0x36 - ldrsh r0, [r2, r4] - cmp r0, 0 - bge _080435C2 - adds r0, 0xFF -_080435C2: - asrs r0, 8 - strh r0, [r2, 0x24] - movs r3, 0x38 - ldrsh r0, [r2, r3] - cmp r0, 0 - bge _080435D0 - adds r0, 0xFF -_080435D0: - asrs r0, 8 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r3, r1, r0 - strh r3, [r2, 0x32] - movs r4, 0x22 - ldrsh r1, [r2, r4] - movs r4, 0x26 - ldrsh r0, [r2, r4] - adds r0, r1, r0 - adds r1, 0x14 - cmp r0, r1 - ble _080435F6 - lsls r0, r3, 16 - cmp r0, 0 - ble _080435F6 - adds r0, r2, 0 - bl DestroySprite -_080435F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80435A4 - - thumb_func_start sub_80435FC -sub_80435FC: @ 80435FC - push {r4-r6,lr} - sub sp, 0x8 - ldr r3, _0804364C - ldr r0, _08043650 - ldr r4, [r0] - adds r4, 0x3A - ldrb r2, [r4] - lsls r0, r2, 2 - adds r1, r0, r3 - ldrh r6, [r1] - adds r3, 0x2 - adds r0, r3 - ldrh r5, [r0] - adds r2, 0x1 - strb r2, [r4] - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsls r6, 16 - asrs r6, 16 - lsls r5, 16 - asrs r5, 16 - movs r0, 0x64 - str r0, [sp] - lsrs r1, 16 - str r1, [sp, 0x4] - movs r0, 0x78 - movs r1, 0x3C - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_8043654 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804364C: .4byte gUnknown_0820A430 -_08043650: .4byte 0x0300481c - thumb_func_end sub_80435FC - - thumb_func_start sub_8043654 -sub_8043654: @ 8043654 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x1C] - mov r9, r0 - ldr r1, [sp, 0x20] - mov r10, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _080436CC - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080436D0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x30] - mov r1, r8 - strh r1, [r0, 0x32] - mov r1, r9 - strh r1, [r0, 0x34] - mov r1, r10 - bl StartSpriteAnim - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080436CC: .4byte gSpriteTemplate_820A418 -_080436D0: .4byte 0x02020004 - thumb_func_end sub_8043654 - - thumb_func_start sub_80436D4 -sub_80436D4: @ 80436D4 - push {lr} - sub sp, 0x4 - adds r1, r0, 0 - ldr r0, _080436F8 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x8 - adds r2, 0x38 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x3 - bl sub_8002EB0 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080436F8: .4byte 0x0300481c - thumb_func_end sub_80436D4 - - thumb_func_start sub_80436FC -sub_80436FC: @ 80436FC - push {lr} - sub sp, 0x4 - adds r1, r0, 0 - ldr r0, _08043720 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x8 - adds r2, 0x38 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08043720: .4byte 0x0300481c - thumb_func_end sub_80436FC - - thumb_func_start sub_8043724 -sub_8043724: @ 8043724 - push {lr} - ldr r0, _08043738 - ldr r0, [r0] - adds r0, 0x8 - bl sub_80035AC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08043738: .4byte 0x0300481c - thumb_func_end sub_8043724 - - thumb_func_start sub_804373C -sub_804373C: @ 804373C - movs r0, 0x9 - bx lr - thumb_func_end sub_804373C - - thumb_func_start sub_8043740 -sub_8043740: @ 8043740 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r1, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r3, 0 - movs r2, 0 -_0804375C: - lsls r0, r3, 24 - asrs r0, 24 - mov r3, sp - adds r1, r3, r0 - strb r2, [r1] - adds r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _0804375C - movs r3, 0x3 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 - mov r8, sp -_0804377C: - lsls r0, r5, 16 - asrs r6, r0, 16 - cmp r6, 0 - ble _080437AA - lsls r4, r3, 24 - asrs r4, 24 - mov r1, sp - adds r5, r1, r4 - adds r0, r6, 0 - movs r1, 0xA - bl __modsi3 - strb r0, [r5] - adds r0, r6, 0 - movs r1, 0xA - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - subs r4, 0x1 - lsls r4, 24 - lsrs r3, r4, 24 - b _0804377C -_080437AA: - lsls r1, r3, 24 - asrs r0, r1, 24 - cmp r0, r9 - ble _080437CE - movs r4, 0xFF - movs r3, 0x1 - negs r3, r3 -_080437B8: - asrs r2, r1, 24 - mov r5, sp - adds r1, r5, r2 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - subs r2, 0x1 - lsls r1, r2, 24 - asrs r0, r1, 24 - cmp r0, r3 - bgt _080437B8 -_080437CE: - mov r1, r8 - ldrb r0, [r1, 0x3] - cmp r0, 0xFF - bne _080437DA - movs r0, 0 - strb r0, [r1, 0x3] -_080437DA: - mov r2, r10 - cmp r2, 0 - bne _0804386A - movs r3, 0 - movs r1, 0 - movs r6, 0xFC - lsls r6, 8 - movs r5, 0x1E - mov r12, r5 -_080437EC: - lsls r1, 24 - asrs r2, r1, 24 - mov r0, sp - adds r5, r0, r2 - ldrb r0, [r5] - mov r8, r1 - cmp r0, 0xFF - bne _08043822 - lsls r1, r2, 1 - adds r1, r7 - ldrh r2, [r1] - adds r0, r6, 0 - ands r0, r2 - mov r2, r12 - orrs r0, r2 - strh r0, [r1] - lsls r3, 24 - asrs r1, r3, 23 - adds r1, r7 - adds r1, 0x40 - ldrh r2, [r1] - adds r0, r6, 0 - ands r0, r2 - mov r5, r12 - orrs r0, r5 - strh r0, [r1] - b _08043852 -_08043822: - lsls r2, 1 - adds r2, r7 - ldrh r0, [r2] - adds r1, r6, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x14 - orrs r1, r0 - strh r1, [r2] - lsls r4, r3, 24 - asrs r3, r4, 24 - lsls r2, r3, 1 - adds r2, r7 - adds r2, 0x40 - ldrh r0, [r2] - adds r1, r6, 0 - ands r1, r0 - mov r5, sp - adds r0, r5, r3 - ldrb r0, [r0] - adds r0, 0x34 - orrs r1, r0 - strh r1, [r2] - adds r3, r4, 0 -_08043852: - movs r0, 0x80 - lsls r0, 17 - add r0, r8 - lsrs r1, r0, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r3, r2 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080437EC - b _080438CE -_0804386A: - movs r3, 0 - movs r4, 0xFC - lsls r4, 8 - movs r6, 0x1E -_08043872: - lsls r1, r3, 24 - asrs r2, r1, 24 - mov r3, sp - adds r5, r3, r2 - ldrb r0, [r5] - adds r3, r1, 0 - cmp r0, 0xFF - bne _0804389E - lsls r1, r2, 1 - adds r1, r7 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - adds r1, 0x40 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - b _080438C0 -_0804389E: - lsls r2, 1 - adds r2, r7 - ldrh r0, [r2] - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x14 - orrs r1, r0 - strh r1, [r2] - adds r2, 0x40 - ldrh r0, [r2] - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x34 - orrs r1, r0 - strh r1, [r2] -_080438C0: - movs r5, 0x80 - lsls r5, 17 - adds r0, r3, r5 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _08043872 -_080438CE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8043740 - - thumb_func_start unref_sub_80438E0 -unref_sub_80438E0: @ 80438E0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0x1E - strh r1, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - adds r1, r5, 0 - movs r2, 0 - bl sub_8043740 - lsls r4, 16 - asrs r4, 16 - adds r5, 0xA - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8043740 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end unref_sub_80438E0 - - thumb_func_start battle_make_oam_normal_battle -battle_make_oam_normal_battle: @ 8043914 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08043A28 - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080439AC - ldr r4, _0804399C - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _080439A0 - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1, 0x1] - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r2, r4 - ldrb r0, [r2, 0x1] - ands r3, r0 - strb r3, [r2, 0x1] - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x40 - ldr r4, _080439A4 - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080439A8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - b _080439F2 - .align 2, 0 -_0804399C: .4byte gSpriteTemplate_820A4EC -_080439A0: .4byte 0x02020004 -_080439A4: .4byte 0x000003ff -_080439A8: .4byte 0xfffffc00 -_080439AC: - ldr r4, _08043A14 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08043A18 - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r2, r0 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r5, _08043A1C - adds r0, r5, 0 - ands r1, r0 - ldr r0, _08043A20 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - movs r0, 0x2 - str r0, [sp] -_080439F2: - ldr r2, _08043A18 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r2 - strh r7, [r0, 0x6] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r1, r0, r2 - strh r6, [r1, 0x38] - adds r2, 0x1C - adds r0, r2 - ldr r1, _08043A24 - str r1, [r0] - b _08043B50 - .align 2, 0 -_08043A14: .4byte gSpriteTemplate_820A51C -_08043A18: .4byte 0x02020004 -_08043A1C: .4byte 0x000003ff -_08043A20: .4byte 0xfffffc00 -_08043A24: .4byte sub_8043D5C -_08043A28: - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08043ACC - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r4, _08043AB8 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _08043ABC - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x6] - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r3, r2, r4 - strh r6, [r3, 0x38] - ldrh r1, [r3, 0x4] - mov r8, r1 - mov r5, r8 - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r5, _08043AC0 - adds r0, r5, 0 - ands r1, r0 - ldr r0, _08043AC4 - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r4, 0x1C - adds r2, r4 - ldr r0, _08043AC8 - str r0, [r2] - movs r0, 0x1 - b _08043B4E - .align 2, 0 -_08043AB8: .4byte gSpriteTemplate_820A4EC -_08043ABC: .4byte 0x02020004 -_08043AC0: .4byte 0x000003ff -_08043AC4: .4byte 0xfffffc00 -_08043AC8: .4byte sub_8043D5C -_08043ACC: - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r4, _08043C14 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r10 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _08043C18 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x6] - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r3, r2, r4 - strh r6, [r3, 0x38] - ldrh r1, [r3, 0x4] - mov r8, r1 - mov r5, r8 - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r5, _08043C1C - adds r0, r5, 0 - ands r1, r0 - ldr r0, _08043C20 - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r4, 0x1C - adds r2, r4 - ldr r0, _08043C24 - str r0, [r2] - movs r0, 0x2 -_08043B4E: - str r0, [sp] -_08043B50: - ldr r0, _08043C28 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r1, _08043C2C - adds r0, r1 - movs r1, 0x8C - movs r2, 0x3C - movs r3, 0 - bl CreateSpriteAtEnd - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r1, _08043C18 - mov r8, r1 - add r4, r8 - mov r0, r10 - bl battle_side_get_owner - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 21 - ldr r0, _08043C30 - adds r1, r0 - adds r0, r4, 0 - bl SetSubspriteTables - adds r2, r4, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r2, 0x4 - mov r9, r2 - mov r1, r9 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0x1 - bl sub_8043CDC - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, _08043C34 - adds r1, r2 - ldr r2, _08043C38 - bl CpuSet - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - add r0, r8 - strh r5, [r0, 0x38] - mov r2, r10 - strh r2, [r0, 0x3A] - adds r0, 0x3E - ldrb r1, [r0] - mov r5, r9 - orrs r1, r5 - strb r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - strh r6, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - adds r4, 0x3E - ldrb r0, [r4] - orrs r0, r5 - strb r0, [r4] - adds r0, r6, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08043C14: .4byte gSpriteTemplate_820A51C -_08043C18: .4byte 0x02020004 -_08043C1C: .4byte 0x000003ff -_08043C20: .4byte 0xfffffc00 -_08043C24: .4byte sub_8043D5C -_08043C28: .4byte 0x02024a72 -_08043C2C: .4byte gSpriteTemplate_820A56C -_08043C30: .4byte gUnknown_0820A684 -_08043C34: .4byte 0x06010000 -_08043C38: .4byte 0x04000010 - thumb_func_end battle_make_oam_normal_battle - - thumb_func_start battle_make_oam_safari_battle -battle_make_oam_safari_battle: @ 8043C3C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, _08043CC8 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08043CCC - mov r9, r1 - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - add r4, r9 - ldrb r3, [r4, 0x1] - movs r2, 0x3F - adds r1, r2, 0 - ands r1, r3 - strb r1, [r4, 0x1] - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - mov r7, r9 - adds r5, r3, r7 - ldrb r1, [r5, 0x1] - ands r2, r1 - strb r2, [r5, 0x1] - ldrh r1, [r5, 0x4] - mov r8, r1 - mov r7, r8 - lsls r2, r7, 22 - lsrs r2, 22 - adds r2, 0x40 - ldr r7, _08043CD0 - adds r1, r7, 0 - ands r2, r1 - ldr r1, _08043CD4 - mov r7, r8 - ands r1, r7 - orrs r1, r2 - strh r1, [r5, 0x4] - strh r0, [r4, 0x6] - strh r6, [r5, 0x38] - movs r0, 0x1C - add r9, r0 - add r3, r9 - ldr r0, _08043CD8 - str r0, [r3] - adds r0, r6, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08043CC8: .4byte gSpriteTemplate_820A54C -_08043CCC: .4byte 0x02020004 -_08043CD0: .4byte 0x000003ff -_08043CD4: .4byte 0xfffffc00 -_08043CD8: .4byte sub_8043D5C - thumb_func_end battle_make_oam_safari_battle - - thumb_func_start sub_8043CDC -sub_8043CDC: @ 8043CDC - lsls r0, 24 - lsrs r0, 19 - ldr r1, _08043CE8 - adds r0, r1 - bx lr - .align 2, 0 -_08043CE8: .4byte gUnknown_08D1216C - thumb_func_end sub_8043CDC - - thumb_func_start sub_8043CEC -sub_8043CEC: @ 8043CEC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08043D1C - cmp r0, 0x1 - bgt _08043D30 - cmp r0, 0 - bne _08043D30 - ldr r2, _08043D18 - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x10 - b _08043D3E - .align 2, 0 -_08043D18: .4byte 0x02020004 -_08043D1C: - ldr r2, _08043D2C - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x10 - b _08043D3E - .align 2, 0 -_08043D2C: .4byte 0x02020004 -_08043D30: - ldr r2, _08043D58 - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x8 -_08043D3E: - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x22] - strh r0, [r4, 0x22] - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - strh r1, [r4, 0x24] - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043D58: .4byte 0x02020004 - thumb_func_end sub_8043CEC - - thumb_func_start sub_8043D5C -sub_8043D5C: @ 8043D5C - ldrh r1, [r0, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08043D80 - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x20] - adds r1, 0x40 - strh r1, [r0, 0x20] - ldrh r1, [r2, 0x22] - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x24] - strh r1, [r0, 0x24] - ldrh r1, [r2, 0x26] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_08043D80: .4byte 0x02020004 - thumb_func_end sub_8043D5C - - thumb_func_start sub_8043D84 -sub_8043D84: @ 8043D84 - push {r4,r5,lr} - ldr r5, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 2 - ldr r0, _08043DA8 - adds r4, r0 - strb r1, [r4] - str r2, [r4, 0x4] - str r3, [r4, 0x8] - str r5, [r4, 0xC] - ldr r0, _08043DAC - str r0, [r4, 0x10] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043DA8: .4byte 0x02017850 -_08043DAC: .4byte 0xffff8000 - thumb_func_end sub_8043D84 - - thumb_func_start sub_8043DB0 -sub_8043DB0: @ 8043DB0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08043DF8 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - movs r0, 0x38 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - ldrh r1, [r2, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08043DF8: .4byte 0x02020004 - thumb_func_end sub_8043DB0 - - thumb_func_start sub_8043DFC -sub_8043DFC: @ 8043DFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08043E4C - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - adds r4, r2, 0 - adds r4, 0x3E - ldrb r1, [r4] - movs r3, 0x5 - negs r3, r3 - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - movs r0, 0x38 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r4, [r0] - adds r1, r3, 0 - ands r1, r4 - strb r1, [r0] - ldrh r1, [r2, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043E4C: .4byte 0x02020004 - thumb_func_end sub_8043DFC - - thumb_func_start sub_8043E50 -sub_8043E50: @ 8043E50 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08043E6C - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r4 - strh r1, [r3, 0x20] - strh r2, [r3, 0x22] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08043E6C: .4byte 0x02020004 - thumb_func_end sub_8043E50 - - thumb_func_start unref_sub_8043E70 -unref_sub_8043E70: @ 8043E70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08043EAC - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r4, r5 - ldrh r1, [r4, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r0, r4, 0 - bl DestroySprite - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043EAC: .4byte 0x02020004 - thumb_func_end unref_sub_8043E70 - - thumb_func_start nullsub_11 -nullsub_11: @ 8043EB0 - bx lr - thumb_func_end nullsub_11 - - thumb_func_start sub_8043EB4 -sub_8043EB4: @ 8043EB4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - ldr r1, _08043F38 - mov r8, r1 - ldrb r2, [r1] - cmp r6, r2 - bge _08043F2C - ldr r1, _08043F3C - mov r12, r1 - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r7, 0xD - negs r7, r7 - ldr r2, _08043F40 - mov r9, r2 -_08043EDE: - mov r1, r9 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - ldrb r4, [r1, 0x6] - ldrh r3, [r1, 0x38] - lsls r3, 24 - lsrs r3, 24 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - adds r6, 0x1 - mov r2, r8 - ldrb r2, [r2] - cmp r6, r2 - blt _08043EDE -_08043F2C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08043F38: .4byte 0x02024a68 -_08043F3C: .4byte 0x02020004 -_08043F40: .4byte 0x03004340 - thumb_func_end sub_8043EB4 - - thumb_func_start sub_8043F44 -sub_8043F44: @ 8043F44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r4, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08043F70 - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08043F6A - movs r5, 0x2C - movs r4, 0x1E - b _08043FA8 -_08043F6A: - movs r5, 0x9E - movs r4, 0x58 - b _08043FA8 -_08043F70: - adds r0, r6, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08043F9E - cmp r0, 0x1 - bgt _08043F88 - cmp r0, 0 - beq _08043F92 - b _08043FA8 -_08043F88: - cmp r0, 0x2 - beq _08043F98 - cmp r0, 0x3 - beq _08043FA4 - b _08043FA8 -_08043F92: - movs r5, 0x9F - movs r4, 0x4D - b _08043FA8 -_08043F98: - movs r5, 0xAB - movs r4, 0x66 - b _08043FA8 -_08043F9E: - movs r5, 0x2C - movs r4, 0x13 - b _08043FA8 -_08043FA4: - movs r5, 0x20 - movs r4, 0x2C -_08043FA8: - ldr r0, _08043FBC - adds r0, r6, r0 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8043E50 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08043FBC: .4byte 0x03004340 - thumb_func_end sub_8043F44 - - thumb_func_start sub_8043FC0 -sub_8043FC0: @ 8043FC0 - push {r4-r7,lr} - sub sp, 0x20 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _08044000 - mov r0, sp - movs r2, 0x1E - bl memcpy - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08044010 - ldr r1, _08044004 - lsls r4, r5, 4 - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r7, _08044008 - cmp r0, 0 - bne _0804402E - ldr r7, _0804400C - b _0804402E - .align 2, 0 -_08044000: .4byte gUnknown_0820A81C -_08044004: .4byte 0x02020004 -_08044008: .4byte gUnknown_0820A80C -_0804400C: .4byte gUnknown_0820A804 -_08044010: - ldr r1, _08044040 - lsls r4, r5, 4 - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r7, _08044044 - cmp r0, 0 - bne _0804402E - ldr r7, _08044048 -_0804402E: - mov r3, sp - adds r3, 0x6 - cmp r6, 0x64 - bne _0804404C - adds r0, r3, 0 - movs r1, 0x64 - movs r2, 0 - movs r3, 0x3 - b _0804408C - .align 2, 0 -_08044040: .4byte 0x02020004 -_08044044: .4byte gUnknown_0820A80C -_08044048: .4byte gUnknown_0820A814 -_0804404C: - movs r1, 0xFC - strb r1, [r3] - mov r3, sp - adds r3, 0x7 - movs r0, 0x11 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r2, 0x14 - strb r2, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xF0 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - strb r2, [r3] - adds r3, 0x1 - movs r0, 0 - strb r0, [r3] - adds r3, 0x1 - adds r0, r3, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 -_0804408C: - bl ConvertIntToDecimalStringN - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x13 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xF - strb r0, [r3] - movs r0, 0xFF - strb r0, [r3, 0x1] - movs r0, 0x80 - lsls r0, 18 - mov r1, sp - bl sub_80034D4 - ldr r1, _080440E0 - adds r0, r4, r5 - lsls r0, 2 - adds r6, r0, r1 - ldr r5, _080440E4 - movs r4, 0x2 -_080440BC: - ldrh r0, [r6, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldm r7!, {r1} - adds r1, r0 - adds r0, r5, 0 - ldr r2, _080440E8 - bl CpuSet - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bne _080440BC - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080440E0: .4byte 0x02020004 -_080440E4: .4byte 0x02000020 -_080440E8: .4byte 0x04000008 - thumb_func_end sub_8043FC0 - - thumb_func_start sub_80440EC -sub_80440EC: @ 80440EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r1, _08044144 - mov r0, sp - movs r2, 0x14 - bl memcpy - ldr r1, _08044148 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x3A - ldrsh r5, [r4, r0] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08044136 - lsls r0, r5, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804414C -_08044136: - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r7, 0 - mov r2, r8 - bl sub_8044210 - b _080441F0 - .align 2, 0 -_08044144: .4byte gUnknown_0820A864 -_08044148: .4byte 0x02020004 -_0804414C: - mov r5, sp - adds r5, 0x6 - mov r0, r8 - cmp r0, 0 - bne _08044190 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r4, _08044188 - cmp r0, 0 - bne _0804416A - ldr r4, _0804418C -_0804416A: - movs r0, 0x3 - mov r8, r0 - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r5, 0 - movs r2, 0x13 - movs r3, 0x1 - bl sub_8003504 - adds r5, r0, 0 - movs r0, 0xBA - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - b _080441B6 - .align 2, 0 -_08044188: .4byte gUnknown_0820A848 -_0804418C: .4byte gUnknown_0820A83C -_08044190: - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r4, _080441FC - cmp r0, 0 - bne _080441A4 - ldr r4, _08044200 -_080441A4: - movs r0, 0x2 - mov r8, r0 - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r5, 0 - movs r2, 0xF - movs r3, 0x1 - bl sub_8003504 -_080441B6: - movs r0, 0x80 - lsls r0, 18 - mov r1, sp - bl sub_80034D4 - mov r0, r8 - cmp r0, 0 - beq _080441F0 - ldr r1, _08044204 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r6, r0, r1 - adds r7, r4, 0 - ldr r5, _08044208 - mov r4, r8 -_080441D6: - ldrh r0, [r6, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldm r7!, {r1} - adds r1, r0 - adds r0, r5, 0 - ldr r2, _0804420C - bl CpuSet - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bne _080441D6 -_080441F0: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080441FC: .4byte gUnknown_0820A85C -_08044200: .4byte gUnknown_0820A854 -_08044204: .4byte 0x02020004 -_08044208: .4byte 0x02000020 -_0804420C: .4byte 0x04000008 - thumb_func_end sub_80440EC - - thumb_func_start sub_8044210 -sub_8044210: @ 8044210 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - mov r9, r6 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r1, _0804427C - mov r0, sp - movs r2, 0x14 - bl memcpy - ldr r1, _08044280 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - mov r8, r0 - movs r1, 0x3A - ldrsh r4, [r0, r1] - lsls r0, r4, 2 - ldr r1, _08044284 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08044312 - mov r2, sp - adds r2, 0x6 - cmp r7, 0 - bne _0804428C - ldr r7, _08044288 - movs r0, 0x6 - mov r10, r0 - lsls r1, r6, 16 - asrs r1, 16 - adds r0, r2, 0 - movs r2, 0x2B - movs r3, 0x1 - bl sub_8003504 - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - movs r0, 0xFF - strb r0, [r2, 0x1] - b _080442CE - .align 2, 0 -_0804427C: .4byte gUnknown_0820A89C -_08044280: .4byte 0x02020004 -_08044284: .4byte 0x02017800 -_08044288: .4byte gUnknown_0820A87C -_0804428C: - ldr r7, _08044324 - movs r1, 0x2 - mov r10, r1 - mov r0, r9 - lsls r1, r0, 16 - asrs r1, 16 - adds r0, r2, 0 - movs r2, 0xF - movs r3, 0x1 - bl sub_8003504 - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080442CE - movs r0, 0x74 - bl sub_8043CDC - mov r2, r8 - ldrh r1, [r2, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r2, 0xD0 - lsls r2, 3 - adds r1, r2 - ldr r2, _08044328 - adds r1, r2 - ldr r2, _0804432C - bl CpuSet -_080442CE: - ldr r6, _08044330 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r6 - movs r1, 0x38 - ldrsh r4, [r0, r1] - movs r0, 0x80 - lsls r0, 18 - mov r1, sp - bl sub_80034D4 - mov r2, r10 - cmp r2, 0 - beq _08044312 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r6, r0, r6 - ldr r5, _08044334 - mov r4, r10 -_080442F8: - ldrh r0, [r6, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldm r7!, {r1} - adds r1, r0 - adds r0, r5, 0 - ldr r2, _0804432C - bl CpuSet - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bne _080442F8 -_08044312: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044324: .4byte gUnknown_0820A894 -_08044328: .4byte 0x06010000 -_0804432C: .4byte 0x04000008 -_08044330: .4byte 0x02020004 -_08044334: .4byte 0x02000020 - thumb_func_end sub_8044210 - - thumb_func_start sub_8044338 -sub_8044338: @ 8044338 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - ldr r1, _080443CC - mov r0, sp - movs r2, 0x14 - bl memcpy - ldr r1, _080443D0 - ldr r2, [sp, 0x14] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 7 - ldr r3, _080443D4 - adds r6, r1, r3 - movs r0, 0x5 - mov r8, r0 - adds r0, r4, 0 - bl GetNature - lsls r0, 24 - mov r4, sp - adds r4, 0x6 - ldr r1, _080443D8 - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r0, r6, 0 - mov r1, sp - bl sub_80034D4 - movs r7, 0x6 - movs r5, 0 - mov r1, sp - adds r1, 0x9 - str r1, [sp, 0x1C] -_080443AA: - mov r2, sp - adds r0, r2, r7 - ldrb r1, [r0] - adds r0, r1, 0 - subs r0, 0x37 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _080443C8 - adds r0, r1, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080443DC -_080443C8: - movs r0, 0x2C - b _080443FA - .align 2, 0 -_080443CC: .4byte gUnknown_0820A864 -_080443D0: .4byte 0x02020004 -_080443D4: .4byte 0x02000520 -_080443D8: .4byte gNatureNames -_080443DC: - adds r0, r1, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080443F4 - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080443F8 -_080443F4: - movs r0, 0x2D - b _080443FA -_080443F8: - movs r0, 0x2B -_080443FA: - bl sub_8043CDC - lsls r1, r5, 6 - adds r1, r6, r1 - ldr r2, _080444F8 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, 0x1 - cmp r5, r8 - bcc _080443AA - movs r7, 0x1 - ldr r3, [sp, 0x14] - lsls r3, 4 - str r3, [sp, 0x18] - movs r0, 0x1 - add r0, r8 - mov r9, r0 - cmp r7, r9 - bge _08044486 - ldr r1, _080444FC - ldr r2, _080444F8 - mov r10, r2 - ldr r2, [sp, 0x14] - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - mov r8, r0 -_08044436: - mov r3, r8 - ldrh r0, [r3, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r5, r7, 0 - cmp r7, 0 - bge _08044446 - adds r5, r7, 0x7 -_08044446: - asrs r5, 3 - lsls r4, r5, 3 - subs r4, r7, r4 - adds r0, r4 - lsls r5, 6 - adds r0, r5 - lsls r0, 5 - ldr r2, _08044500 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - mov r3, r8 - ldrh r0, [r3, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r4, 0x8 - adds r0, r4 - adds r0, r5 - lsls r0, 5 - ldr r2, _08044500 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - adds r7, 0x1 - cmp r7, r9 - blt _08044436 -_08044486: - ldr r6, _080444FC - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x14] - adds r0, r3, r1 - lsls r0, 2 - adds r0, r6 - ldrh r5, [r0, 0x38] - lsls r5, 24 - lsrs r5, 24 - ldr r4, _08044504 - ldr r2, _08044508 - adds r0, r4, r2 - ldrb r1, [r0] - mov r0, sp - adds r0, 0x6 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r3, _0804450C - adds r4, r3 - ldrb r1, [r4] - ldr r0, [sp, 0x1C] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x5] - movs r0, 0xBA - strb r0, [r1, 0x8] - movs r0, 0x80 - lsls r0, 18 - bl sub_80034D4 - movs r7, 0 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r5, r0, r6 - ldr r4, _08044510 -_080444DA: - cmp r7, 0x1 - bgt _08044514 - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r0, r7, 0x2 - adds r1, r0 - lsls r1, 5 - ldr r0, _08044500 - adds r1, r0 - adds r0, r4, 0 - ldr r2, _080444F8 - bl CpuSet - b _0804452A - .align 2, 0 -_080444F8: .4byte 0x04000008 -_080444FC: .4byte 0x02020004 -_08044500: .4byte 0x06010000 -_08044504: .4byte 0x02000000 -_08044508: .4byte 0x00016089 -_0804450C: .4byte 0x00016088 -_08044510: .4byte 0x02000020 -_08044514: - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r7, r1 - lsls r1, 5 - ldr r2, _08044544 - adds r1, r2 - adds r0, r4, 0 - ldr r2, _08044548 - bl CpuSet -_0804452A: - adds r4, 0x40 - adds r7, 0x1 - cmp r7, 0x4 - ble _080444DA - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044544: .4byte 0x060100c0 -_08044548: .4byte 0x04000008 - thumb_func_end sub_8044338 - - thumb_func_start sub_804454C -sub_804454C: @ 804454C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - ldr r0, _0804466C - ldrb r0, [r0] - cmp r8, r0 - blt _08044566 - b _080447E4 -_08044566: - ldr r1, _08044670 - mov r9, r1 - movs r2, 0x64 - mov r10, r2 - ldr r7, _08044674 -_08044570: - ldr r0, _08044678 - mov r6, r8 - adds r5, r6, r0 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r9 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, _0804467C - cmp r1, r0 - beq _0804458E - b _080447D4 -_0804458E: - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080445A2 - b _080447D4 -_080445A2: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _080445BA - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080445BA - b _080447D4 -_080445BA: - mov r0, r8 - lsls r3, r0, 2 - ldr r0, _08044680 - adds r3, r0 - ldr r0, [r3] - lsls r0, 27 - lsrs r0, 31 - movs r2, 0x1 - eors r2, r0 - lsls r2, 4 - ldrb r0, [r3] - movs r6, 0x11 - negs r6, r6 - adds r1, r6, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldr r0, [r3] - lsls r0, 27 - lsrs r6, r0, 31 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080446DC - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _080445FA - b _080447D4 -_080445FA: - ldr r0, _08044684 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0804460C - b _080447D4 -_0804460C: - cmp r6, 0x1 - bne _08044694 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - str r2, [sp] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r0, _08044688 - adds r1, r0 - mov r0, sp - ldr r2, _0804468C - bl CpuSet - ldrb r4, [r5] - ldrh r0, [r7] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _08044690 - adds r0, r2 - movs r1, 0x39 - bl PokemonGetField - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_8044210 - ldrb r4, [r5] - ldrh r0, [r7] - mov r6, r10 - muls r6, r0 - adds r0, r6, 0 - ldr r1, _08044690 - b _08044766 - .align 2, 0 -_0804466C: .4byte 0x02024a68 -_08044670: .4byte 0x02020004 -_08044674: .4byte 0x02024a6a -_08044678: .4byte 0x03004340 -_0804467C: .4byte SpriteCallbackDummy -_08044680: .4byte 0x02017800 -_08044684: .4byte 0x020239f8 -_08044688: .4byte 0x06010000 -_0804468C: .4byte 0x05000040 -_08044690: .4byte 0x03004360 -_08044694: - ldrb r0, [r5] - bl draw_status_ailment_maybe - ldrb r0, [r5] - ldrh r1, [r7] - mov r2, r10 - muls r2, r1 - adds r1, r2, 0 - ldr r6, _080446D0 - adds r1, r6 - movs r2, 0x5 - bl sub_8045A5C - movs r0, 0x75 - bl sub_8043CDC - ldrb r2, [r5] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r9 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, _080446D4 - adds r1, r2 - ldr r2, _080446D8 - bl CpuSet - b _080447BE - .align 2, 0 -_080446D0: .4byte 0x03004360 -_080446D4: .4byte 0x06010680 -_080446D8: .4byte 0x04000008 -_080446DC: - cmp r6, 0x1 - bne _0804478C - ldr r0, _08044704 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0804470C - ldrb r0, [r5] - ldrh r1, [r7] - mov r6, r10 - muls r6, r1 - adds r1, r6, 0 - ldr r2, _08044708 - adds r1, r2 - bl sub_8044338 - b _080447BE - .align 2, 0 -_08044704: .4byte 0x020239f8 -_08044708: .4byte 0x030045c0 -_0804470C: - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - str r2, [sp] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r6, _08044780 - adds r1, r6 - mov r0, sp - ldr r2, _08044784 - bl CpuSet - ldrb r4, [r5] - ldrh r0, [r7] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _08044788 - adds r0, r2 - movs r1, 0x39 - bl PokemonGetField - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_8044210 - ldrb r4, [r5] - ldrh r0, [r7] - mov r6, r10 - muls r6, r0 - adds r0, r6, 0 - ldr r1, _08044788 -_08044766: - adds r0, r1 - movs r1, 0x3A - bl PokemonGetField - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_8044210 - b _080447BE - .align 2, 0 -_08044780: .4byte 0x06010000 -_08044784: .4byte 0x05000040 -_08044788: .4byte 0x030045c0 -_0804478C: - ldrb r0, [r5] - bl draw_status_ailment_maybe - ldrb r0, [r5] - ldrh r1, [r7] - movs r6, 0x64 - muls r1, r6 - ldr r4, _080447F4 - adds r1, r4 - movs r2, 0x5 - bl sub_8045A5C - ldr r0, _080447F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080447BE - ldrb r0, [r5] - ldrh r1, [r7] - muls r1, r6 - adds r1, r4 - movs r2, 0x4 - bl sub_8045A5C -_080447BE: - ldr r0, _080447FC - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrh r1, [r0, 0x3C] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x3C] -_080447D4: - adds r7, 0x2 - movs r2, 0x1 - add r8, r2 - ldr r0, _08044800 - ldrb r0, [r0] - cmp r8, r0 - bge _080447E4 - b _08044570 -_080447E4: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080447F4: .4byte 0x030045c0 -_080447F8: .4byte 0x020239f8 -_080447FC: .4byte 0x03004340 -_08044800: .4byte 0x02024a68 - thumb_func_end sub_804454C - - thumb_func_start sub_8044804 -sub_8044804: @ 8044804 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - str r1, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - adds r4, r2, 0 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - cmp r4, 0 - beq _08044834 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08044878 -_08044834: - ldr r0, [sp, 0x8] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08044854 - movs r7, 0 - movs r1, 0x88 - movs r2, 0x60 - movs r0, 0x64 - mov r8, r0 - ldr r5, _08044850 - b _08044884 - .align 2, 0 -_08044850: .4byte 0x0000fffb -_08044854: - movs r7, 0x1 - cmp r4, 0 - beq _08044864 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _0804486A -_08044864: - movs r1, 0x68 - movs r2, 0x28 - b _0804486E -_0804486A: - movs r1, 0x68 - movs r2, 0x10 -_0804486E: - ldr r3, _08044874 - mov r8, r3 - b _08044882 - .align 2, 0 -_08044874: .4byte 0x0000ff9c -_08044878: - movs r7, 0x1 - movs r1, 0x68 - movs r2, 0x28 - ldr r5, _08044930 - mov r8, r5 -_08044882: - movs r5, 0x5 -_08044884: - movs r6, 0 - str r6, [sp, 0x14] - lsls r4, r7, 3 - ldr r0, _08044934 - mov r10, r0 - lsls r3, r7, 1 - mov r9, r3 - lsls r1, 16 - str r1, [sp, 0x20] - lsls r2, 16 - str r2, [sp, 0x24] - ldr r2, _08044938 - ldr r1, [sp, 0xC] - movs r6, 0x5 -_080448A0: - ldrh r0, [r1] - cmp r0, r2 - beq _080448B4 - ldr r3, [sp, 0x14] - lsls r0, r3, 24 - movs r3, 0x80 - lsls r3, 17 - adds r0, r3 - lsrs r0, 24 - str r0, [sp, 0x14] -_080448B4: - adds r1, 0x8 - subs r6, 0x1 - cmp r6, 0 - bge _080448A0 - mov r6, r10 - adds r0, r4, r6 - bl LoadCompressedObjectPic - ldr r0, _0804493C - adds r0, r4, r0 - bl LoadSpriteSheet - ldr r0, _08044940 - adds r0, r4, r0 - bl LoadSpritePalette - ldr r0, _08044944 - adds r0, r4, r0 - bl LoadSpritePalette - mov r1, r9 - adds r0, r1, r7 - lsls r0, 3 - ldr r1, _08044948 - adds r0, r1 - ldr r2, [sp, 0x20] - asrs r1, r2, 16 - ldr r3, [sp, 0x24] - asrs r2, r3, 16 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - lsls r0, 4 - ldr r6, [sp, 0x18] - adds r0, r6 - lsls r0, 2 - ldr r1, _0804494C - adds r4, r0, r1 - ldr r1, _08044950 - adds r0, r4, 0 - bl SetSubspriteTables - mov r0, r8 - strh r0, [r4, 0x24] - strh r5, [r4, 0x2E] - cmp r7, 0 - beq _08044954 - ldrh r0, [r4, 0x20] - subs r0, 0x60 - strh r0, [r4, 0x20] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x3] - b _0804495A - .align 2, 0 -_08044930: .4byte 0x0000ff9c -_08044934: .4byte gUnknown_0820A754 -_08044938: .4byte 0x0000ffff -_0804493C: .4byte gUnknown_0820A784 -_08044940: .4byte gUnknown_0820A764 -_08044944: .4byte gUnknown_0820A774 -_08044948: .4byte gSpriteTemplate_820A7A4 -_0804494C: .4byte 0x02020004 -_08044950: .4byte gUnknown_0820A6E4 -_08044954: - ldrh r0, [r4, 0x20] - adds r0, 0x60 - strh r0, [r4, 0x20] -_0804495A: - movs r6, 0 - ldr r1, _08044A04 - mov r10, r1 - mov r4, sp - mov r2, r9 - adds r0, r2, r7 - lsls r0, 3 - str r0, [sp, 0x1C] - movs r3, 0xA - mov r9, r3 - mov r8, r6 -_08044970: - ldr r0, _08044A08 - ldr r5, [sp, 0x24] - ldr r1, _08044A0C - adds r2, r5, r1 - ldr r3, [sp, 0x1C] - adds r0, r3, r0 - ldr r5, [sp, 0x20] - asrs r1, r5, 16 - asrs r2, 16 - movs r3, 0x9 - bl CreateSpriteAtEnd - strb r0, [r4] - ldr r0, [sp, 0x10] - cmp r0, 0 - bne _080449A0 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _08044A10 - adds r1, r2 - ldr r0, _08044A14 - str r0, [r1] -_080449A0: - ldr r5, _08044A04 - cmp r7, 0 - bne _080449BE - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - strh r7, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - strh r7, [r0, 0x26] -_080449BE: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - mov r3, sp - ldrh r3, [r3, 0x18] - strh r3, [r0, 0x2E] - cmp r7, 0 - bne _08044A18 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r0, [r1, 0x20] - adds r0, 0x18 - add r0, r8 - strh r0, [r1, 0x20] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x78 - b _08044A56 - .align 2, 0 -_08044A04: .4byte 0x02020004 -_08044A08: .4byte gSpriteTemplate_820A7D4 -_08044A0C: .4byte 0xfffc0000 -_08044A10: .4byte 0x02020020 -_08044A14: .4byte sub_8045180 -_08044A18: - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldrh r3, [r2, 0x20] - subs r3, 0x18 - movs r1, 0x5 - subs r1, r6 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - subs r3, r0 - strh r3, [r2, 0x20] - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - movs r1, 0x6 - subs r1, r6 - lsls r0, r1, 3 - subs r0, r1 - adds r0, 0xA - strh r0, [r2, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08044AC4 -_08044A56: - strh r1, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x32] - adds r4, 0x1 - movs r2, 0x7 - add r9, r2 - movs r3, 0xA - add r8, r3 - adds r6, 0x1 - cmp r6, 0x5 - bgt _08044A76 - b _08044970 -_08044A76: - ldr r0, [sp, 0x8] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08044B5E - movs r6, 0 - ldr r5, _08044AC8 - mov r10, r5 - ldr r0, _08044ACC - mov r9, r0 - ldr r7, _08044AD0 - ldr r1, _08044AD4 - mov r12, r1 - ldr r2, _08044AD8 - mov r8, r2 - mov r4, sp - ldr r5, [sp, 0xC] -_08044A9A: - mov r3, r10 - ldrh r1, [r3] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08044ADC - ldrh r0, [r5] - cmp r0, r9 - beq _08044AE6 - cmp r0, 0 - bne _08044B2E - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044B46 - .align 2, 0 -_08044AC4: .4byte 0x0000ff88 -_08044AC8: .4byte 0x020239f8 -_08044ACC: .4byte 0x0000ffff -_08044AD0: .4byte 0x02020004 -_08044AD4: .4byte 0x000003ff -_08044AD8: .4byte 0xfffffc00 -_08044ADC: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - asrs r0, 24 - cmp r6, r0 - blt _08044B14 -_08044AE6: - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x1 - strh r1, [r0, 0x3C] - b _08044B52 -_08044B14: - ldrh r0, [r5] - cmp r0, 0 - bne _08044B2E - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044B46 -_08044B2E: - ldr r0, [r5, 0x4] - cmp r0, 0 - beq _08044B52 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_08044B46: - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08044B52: - adds r4, 0x1 - adds r5, 0x8 - adds r6, 0x1 - cmp r6, 0x5 - ble _08044A9A - b _08044C38 -_08044B5E: - movs r6, 0 - ldr r1, _08044BA4 - mov r10, r1 - ldr r2, _08044BA8 - mov r9, r2 - ldr r7, _08044BAC - ldr r3, _08044BB0 - mov r12, r3 - ldr r5, _08044BB4 - mov r8, r5 - ldr r5, [sp, 0xC] - mov r4, sp - adds r4, 0x5 -_08044B78: - mov r0, r10 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08044BB8 - ldrh r0, [r5] - cmp r0, r9 - beq _08044BC2 - cmp r0, 0 - bne _08044C0A - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044C22 - .align 2, 0 -_08044BA4: .4byte 0x020239f8 -_08044BA8: .4byte 0x0000ffff -_08044BAC: .4byte 0x02020004 -_08044BB0: .4byte 0x000003ff -_08044BB4: .4byte 0xfffffc00 -_08044BB8: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - asrs r0, 24 - cmp r6, r0 - blt _08044BF0 -_08044BC2: - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x1 - strh r1, [r0, 0x3C] - b _08044C2E -_08044BF0: - ldrh r0, [r5] - cmp r0, 0 - bne _08044C0A - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08044C22 -_08044C0A: - ldr r0, [r5, 0x4] - cmp r0, 0 - beq _08044C2E - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_08044C22: - mov r0, r12 - ands r1, r0 - mov r0, r8 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08044C2E: - subs r4, 0x1 - adds r5, 0x8 - adds r6, 0x1 - cmp r6, 0x5 - ble _08044B78 -_08044C38: - ldr r0, _08044C98 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _08044C9C - lsls r3, r4, 2 - adds r1, r3, r4 - lsls r1, 3 - adds r0, r1, r2 - mov r5, sp - ldrh r5, [r5, 0x8] - strh r5, [r0, 0x8] - mov r6, sp - ldrh r6, [r6, 0x18] - strh r6, [r0, 0xA] - movs r6, 0 - adds r0, r2, 0 - adds r0, 0xE - adds r1, r0 -_08044C62: - mov r5, sp - adds r0, r5, r6 - ldrb r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x5 - ble _08044C62 - adds r0, r3, r4 - lsls r0, 3 - adds r0, r2 - ldrh r6, [r5, 0x10] - strh r6, [r0, 0x1C] - movs r0, 0x72 - movs r1, 0 - bl audio_play_and_stuff - adds r0, r4, 0 - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08044C98: .4byte TaskDummy -_08044C9C: .4byte 0x03004b20 - thumb_func_end sub_8044804 - - thumb_func_start sub_8044CA0 -sub_8044CA0: @ 8044CA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _08044DB4 - lsls r3, r0, 2 - adds r1, r3, r0 - lsls r1, 3 - adds r0, r1, r2 - ldrb r4, [r0, 0x1C] - mov r9, r4 - ldrb r4, [r0, 0xA] - mov r10, r4 - ldrb r0, [r0, 0x8] - str r0, [sp, 0x8] - movs r5, 0 - adds r7, r2, 0 - ldr r0, _08044DB8 - mov r12, r0 - str r3, [sp, 0xC] - adds r0, r7, 0 - adds r0, 0xE - adds r2, r1, r0 -_08044CD8: - mov r4, sp - adds r1, r4, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044CD8 - ldr r1, _08044DBC - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r7 - movs r1, 0x10 - strh r1, [r0, 0x26] - movs r5, 0 - mov r4, r10 - lsls r4, 4 - str r4, [sp, 0x10] - ldr r4, _08044DB8 - movs r6, 0xD - negs r6, r6 - movs r3, 0x4 -_08044D14: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x1] - adds r5, 0x1 - cmp r5, 0x5 - ble _08044D14 - ldr r2, [sp, 0x10] - add r2, r10 - lsls r2, 2 - add r2, r12 - ldrb r1, [r2, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x1] - mov r2, r9 - cmp r2, 0 - bne _08044D50 - b _08044E54 -_08044D50: - movs r5, 0 - mov r6, r12 - mov r9, r5 - adds r3, r6, 0 - adds r3, 0x1C - mov r4, sp - movs r7, 0 -_08044D5E: - ldr r0, [sp, 0x8] - str r3, [sp, 0x14] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, [sp, 0x14] - cmp r2, 0 - beq _08044DC4 - movs r0, 0x5 - subs r0, r5 - mov r1, sp - adds r2, r1, r0 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r7, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r9 - strh r1, [r0, 0x34] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r9 - strh r1, [r0, 0x36] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _08044DC0 - str r1, [r0] - ldr r2, _08044DB8 - mov r12, r2 - b _08044DFA - .align 2, 0 -_08044DB4: .4byte 0x03004b20 -_08044DB8: .4byte 0x02020004 -_08044DBC: .4byte 0x04000050 -_08044DC0: .4byte sub_8045110 -_08044DC4: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r7, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x34] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x36] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _08044E3C - str r1, [r0] - ldr r0, _08044E40 - mov r12, r0 -_08044DFA: - adds r4, 0x1 - adds r7, 0x7 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044D5E - ldr r3, [sp, 0x10] - add r3, r10 - lsls r3, 2 - mov r1, r12 - adds r0, r3, r1 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - movs r2, 0 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - mov r1, r12 - adds r1, 0x1C - adds r3, r1 - ldr r1, _08044E44 - str r1, [r3] - ldr r1, _08044E48 - bl SetSubspriteTables - ldr r1, _08044E4C - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _08044E50 - b _08044E5E - .align 2, 0 -_08044E3C: .4byte sub_8045110 -_08044E40: .4byte 0x02020004 -_08044E44: .4byte sub_8045048 -_08044E48: .4byte gUnknown_0820A6EC -_08044E4C: .4byte 0x03004b20 -_08044E50: .4byte sub_8044E74 -_08044E54: - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r7 - ldr r1, _08044E70 -_08044E5E: - str r1, [r0] - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044E70: .4byte sub_8044F70 - thumb_func_end sub_8044CA0 - - thumb_func_start sub_8044E74 -sub_8044E74: @ 8044E74 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08044EC0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x1E] - adds r1, r0, 0x1 - strh r1, [r3, 0x1E] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08044EAE - ldrh r0, [r3, 0x26] - subs r2, r0, 0x1 - strh r2, [r3, 0x26] - lsls r0, r2, 16 - cmp r0, 0 - blt _08044EBA - ldr r1, _08044EC4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1] -_08044EAE: - movs r1, 0x26 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08044EBA - ldr r0, _08044EC8 - str r0, [r3] -_08044EBA: - pop {r0} - bx r0 - .align 2, 0 -_08044EC0: .4byte 0x03004b20 -_08044EC4: .4byte 0x04000052 -_08044EC8: .4byte sub_8044ECC - thumb_func_end sub_8044E74 - - thumb_func_start sub_8044ECC -sub_8044ECC: @ 8044ECC - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r6, _08044F44 - lsls r0, r3, 2 - adds r0, r3 - lsls r4, r0, 3 - adds r1, r4, r6 - ldrh r0, [r1, 0x26] - subs r0, 0x1 - movs r5, 0 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r2, r0, 16 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - bne _08044F4C - ldrb r3, [r1, 0xA] - adds r0, r6, 0 - adds r0, 0xE - adds r2, r4, r0 -_08044EFA: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044EFA - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r4, _08044F48 - adds r0, r4 - bl DestroySpriteAndFreeResources - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySpriteAndFreeResources - movs r5, 0x1 -_08044F2A: - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r5, 0x1 - cmp r5, 0x5 - ble _08044F2A - b _08044F62 - .align 2, 0 -_08044F44: .4byte 0x03004b20 -_08044F48: .4byte 0x02020004 -_08044F4C: - movs r0, 0x3 - negs r0, r0 - cmp r2, r0 - bne _08044F62 - ldr r0, _08044F6C - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, r3, 0 - bl DestroyTask -_08044F62: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08044F6C: .4byte 0x04000050 - thumb_func_end sub_8044ECC - - thumb_func_start sub_8044F70 -sub_8044F70: @ 8044F70 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r7, _08044FA4 - lsls r0, r4, 2 - adds r0, r4 - lsls r6, r0, 3 - adds r3, r6, r7 - ldrh r0, [r3, 0x26] - subs r2, r0, 0x1 - movs r5, 0 - strh r2, [r3, 0x26] - lsls r0, r2, 16 - asrs r1, r0, 16 - cmp r1, 0 - blt _08044FAC - ldr r1, _08044FA8 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1] - b _08045022 - .align 2, 0 -_08044FA4: .4byte 0x03004b20 -_08044FA8: .4byte 0x04000052 -_08044FAC: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0804500C - ldrb r3, [r3, 0xA] - movs r5, 0 - adds r0, r7, 0 - adds r0, 0xE - adds r2, r6, r0 -_08044FBE: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08044FBE - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r4, _08045008 - adds r0, r4 - bl DestroySpriteAndFreeResources - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySpriteAndFreeResources - movs r5, 0x1 -_08044FEE: - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r5, 0x1 - cmp r5, 0x5 - ble _08044FEE - b _08045022 - .align 2, 0 -_08045008: .4byte 0x02020004 -_0804500C: - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _08045022 - ldr r0, _0804502C - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, r4, 0 - bl DestroyTask -_08045022: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804502C: .4byte 0x04000050 - thumb_func_end sub_8044F70 - - thumb_func_start sub_8045030 -sub_8045030: @ 8045030 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x24] - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08045044 - ldrh r0, [r1, 0x2E] - adds r0, r2, r0 - strh r0, [r1, 0x24] -_08045044: - pop {r0} - bx r0 - thumb_func_end sub_8045030 - - thumb_func_start sub_8045048 -sub_8045048: @ 8045048 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0 - adds r1, 0x20 - strh r1, [r2, 0x30] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _08045066 - lsls r0, r1, 16 - asrs r0, 20 - ldrh r1, [r2, 0x24] - adds r0, r1 - b _0804506E -_08045066: - lsls r1, 16 - asrs r1, 20 - ldrh r0, [r2, 0x24] - subs r0, r1 -_0804506E: - strh r0, [r2, 0x24] - ldrh r1, [r2, 0x30] - movs r0, 0xF - ands r0, r1 - strh r0, [r2, 0x30] - pop {r0} - bx r0 - thumb_func_end sub_8045048 - - thumb_func_start sub_804507C -sub_804507C: @ 804507C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08045090 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - b _08045106 -_08045090: - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r3, r0, 24 - ldrh r2, [r4, 0x34] - adds r0, r2, 0 - adds r0, 0x38 - lsls r1, r0, 16 - lsrs r2, r1, 16 - ldr r0, _080450C0 - ands r2, r0 - strh r2, [r4, 0x34] - cmp r3, 0 - beq _080450C4 - lsrs r0, r1, 20 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080450D4 - movs r0, 0 - strh r0, [r4, 0x24] - b _080450D4 - .align 2, 0 -_080450C0: .4byte 0x0000fff0 -_080450C4: - lsrs r1, 20 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bge _080450D4 - strh r3, [r4, 0x24] -_080450D4: - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08045106 - movs r1, 0x3F - cmp r3, 0 - beq _080450E4 - movs r1, 0xC0 -_080450E4: - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080450F8 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x74 - bl sub_807552C - b _08045102 -_080450F8: - lsls r1, 24 - asrs r1, 24 - movs r0, 0x73 - bl sub_80754F8 -_08045102: - ldr r0, _0804510C - str r0, [r4, 0x1C] -_08045106: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804510C: .4byte SpriteCallbackDummy - thumb_func_end sub_804507C - - thumb_func_start sub_8045110 -sub_8045110: @ 8045110 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _08045124 - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - b _08045174 -_08045124: - ldrh r0, [r3, 0x32] - lsls r0, 24 - ldrh r2, [r3, 0x34] - adds r1, r2, 0 - adds r1, 0x38 - lsls r4, r1, 16 - lsrs r2, r4, 16 - ldr r1, _08045144 - ands r2, r1 - strh r2, [r3, 0x34] - cmp r0, 0 - beq _08045148 - lsrs r0, r4, 20 - ldrh r1, [r3, 0x24] - adds r0, r1 - b _0804514E - .align 2, 0 -_08045144: .4byte 0x0000fff0 -_08045148: - lsrs r1, r4, 20 - ldrh r0, [r3, 0x24] - subs r0, r1 -_0804514E: - strh r0, [r3, 0x24] - movs r2, 0x24 - ldrsh r0, [r3, r2] - movs r2, 0x20 - ldrsh r1, [r3, r2] - adds r0, r1 - adds r0, 0x8 - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - bls _08045174 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0804517C - str r0, [r3, 0x1C] -_08045174: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804517C: .4byte SpriteCallbackDummy - thumb_func_end sub_8045110 - - thumb_func_start sub_8045180 -sub_8045180: @ 8045180 - ldrh r2, [r0, 0x2E] - lsls r2, 24 - lsrs r2, 24 - ldr r3, _0804519C - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x24] - strh r2, [r0, 0x24] - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_0804519C: .4byte 0x02020004 - thumb_func_end sub_8045180 - - thumb_func_start sub_80451A0 -sub_80451A0: @ 80451A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r7, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _08045238 - ldr r1, _0804523C - adds r0, r4, 0 - bl StringCopy - adds r0, r7, 0 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - mov r0, sp - bl StringGetEnd10 - adds r4, 0x3 - adds r0, r4, 0 - mov r1, sp - bl StringCopy - adds r5, r0, 0 - movs r1, 0xFC - strb r1, [r5] - movs r0, 0x3 - strb r0, [r5, 0x1] - movs r0, 0x2 - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x1 - strb r0, [r5, 0x4] - adds r5, 0x5 - adds r0, r7, 0 - bl pokemon_get_gender - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - movs r1, 0xB - bl PokemonGetField - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0x3 - bl PokemonGetField - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - mov r1, sp - bl sub_8040D3C - cmp r0, 0 - beq _08045222 - movs r6, 0x64 -_08045222: - cmp r6, 0 - beq _08045240 - cmp r6, 0xFE - beq _08045248 - movs r0, 0xB - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - adds r5, 0x1 - b _08045256 - .align 2, 0 -_08045238: .4byte 0x020238cc -_0804523C: .4byte gUnknown_0820A8B0 -_08045240: - movs r0, 0xB - strb r0, [r5] - movs r0, 0xB5 - b _0804524E -_08045248: - movs r0, 0xA - strb r0, [r5] - movs r0, 0xB6 -_0804524E: - strb r0, [r5, 0x1] - movs r0, 0xFF - strb r0, [r5, 0x2] - adds r5, 0x2 -_08045256: - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x37 - strb r0, [r5, 0x2] - movs r0, 0xFF - strb r0, [r5, 0x3] - ldr r1, _080452D8 - mov r0, r9 - lsls r4, r0, 4 - adds r0, r4, r0 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 7 - ldr r2, _080452DC - adds r5, r1, r2 - ldr r0, _080452E0 - mov r8, r0 - adds r0, r5, 0 - mov r1, r8 - bl sub_80034D4 - movs r6, 0 - movs r1, 0x7 - mov r10, r1 - adds r0, r7, 0 - movs r1, 0x3 - bl PokemonGetField - str r4, [sp, 0xC] - cmp r0, 0x1 - bne _08045338 - adds r0, r7, 0 - movs r1, 0x2D - bl PokemonGetField - cmp r0, 0 - bne _08045338 - mov r4, r8 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - beq _08045338 - adds r7, r5, 0 -_080452C2: - cmp r1, 0xFC - bne _080452E4 - ldrb r0, [r4, 0x1] - bl GetExtCtrlCodeLength - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - adds r4, r0 - b _08045330 - .align 2, 0 -_080452D8: .4byte 0x02020004 -_080452DC: .4byte 0x02000520 -_080452E0: .4byte 0x020238cc -_080452E4: - adds r0, r1, 0 - subs r0, 0x37 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _080452FC - adds r0, r1, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08045300 -_080452FC: - movs r0, 0x2C - b _0804531E -_08045300: - adds r0, r1, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _08045318 - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _0804531C -_08045318: - movs r0, 0x2D - b _0804531E -_0804531C: - movs r0, 0x2B -_0804531E: - bl sub_8043CDC - adds r1, r7, 0 - ldr r2, _080453C8 - bl CpuSet - adds r7, 0x40 - adds r6, 0x1 - adds r4, 0x1 -_08045330: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080452C2 -_08045338: - cmp r6, r10 - bge _0804535A - lsls r0, r6, 6 - adds r4, r0, r5 - mov r2, r10 - subs r6, r2, r6 -_08045344: - movs r0, 0x2B - bl sub_8043CDC - adds r1, r4, 0 - ldr r2, _080453C8 - bl CpuSet - adds r4, 0x40 - subs r6, 0x1 - cmp r6, 0 - bne _08045344 -_0804535A: - ldr r1, _080453CC - ldr r0, [sp, 0xC] - add r0, r9 - lsls r0, 2 - adds r6, r0, r1 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080453D4 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _080453D4 - ldr r1, _080453D0 - mov r0, r10 - cmp r0, 0 - beq _08045438 - mov r8, r6 - mov r9, r1 - ldr r7, _080453C8 - mov r6, r10 -_0804538E: - mov r1, r9 - adds r1, 0x4 - mov r9, r1 - subs r1, 0x4 - ldm r1!, {r4} - mov r2, r8 - ldrh r0, [r2, 0x4] - lsls r0, 22 - lsrs r0, 17 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - movs r0, 0x80 - lsls r0, 1 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - subs r6, 0x1 - cmp r6, 0 - bne _0804538E - b _08045438 - .align 2, 0 -_080453C8: .4byte 0x04000008 -_080453CC: .4byte 0x02020004 -_080453D0: .4byte gUnknown_0820A8B4 -_080453D4: - ldr r1, _08045448 - ldr r0, [sp, 0xC] - add r0, r9 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _0804544C - cmp r0, 0 - bne _080453F2 - ldr r1, _08045450 -_080453F2: - mov r2, r10 - cmp r2, 0 - beq _08045438 - mov r8, r4 - mov r9, r1 - ldr r7, _08045454 - mov r6, r10 -_08045400: - mov r0, r9 - adds r0, 0x4 - mov r9, r0 - subs r0, 0x4 - ldm r0!, {r4} - mov r1, r8 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 17 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - movs r2, 0x80 - lsls r2, 1 - adds r4, r2 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl CpuSet - adds r5, 0x20 - subs r6, 0x1 - cmp r6, 0 - bne _08045400 -_08045438: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045448: .4byte 0x02020004 -_0804544C: .4byte gUnknown_0820A8DC -_08045450: .4byte gUnknown_0820A904 -_08045454: .4byte 0x04000008 - thumb_func_end sub_80451A0 - - thumb_func_start sub_8045458 -sub_8045458: @ 8045458 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080454F4 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0804552E - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0804552E - ldr r6, _080454F8 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r6 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0804552E - ldr r1, _080454FC - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08045500 - adds r0, r1 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _0804552E - ldrh r0, [r5, 0x38] - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, 0 - beq _0804550C - movs r0, 0x46 - bl sub_8043CDC - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2 - ldr r2, _08045504 - adds r1, r2 - ldr r2, _08045508 - bl CpuSet - b _0804552E - .align 2, 0 -_080454F4: .4byte 0x020239f8 -_080454F8: .4byte 0x02020004 -_080454FC: .4byte 0x02024a6a -_08045500: .4byte 0x030045c0 -_08045504: .4byte 0x06010000 -_08045508: .4byte 0x04000008 -_0804550C: - str r7, [sp] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 - ldr r0, _08045538 - adds r1, r0 - ldr r2, _0804553C - mov r0, sp - bl CpuSet -_0804552E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045538: .4byte 0x06010000 -_0804553C: .4byte 0x05000008 - thumb_func_end sub_8045458 - - thumb_func_start draw_status_ailment_maybe -draw_status_ailment_maybe: @ 8045540 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080455A4 - mov r2, r9 - lsls r1, r2, 4 - add r1, r9 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r1, 0x38] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080455B0 - ldr r1, _080455A8 - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080455AC - adds r0, r1 - movs r1, 0x37 - bl PokemonGetField - adds r4, r0, 0 - bl battle_type_is_double - lsls r0, 24 - movs r3, 0x12 - mov r8, r3 - cmp r0, 0 - bne _080455CC - movs r0, 0x1A - mov r8, r0 - b _080455CC - .align 2, 0 -_080455A4: .4byte 0x02020004 -_080455A8: .4byte 0x02024a6a -_080455AC: .4byte 0x03004360 -_080455B0: - ldr r1, _080455EC - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080455F0 - adds r0, r1 - movs r1, 0x37 - bl PokemonGetField - adds r4, r0, 0 - movs r1, 0x11 - mov r8, r1 -_080455CC: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _080455F4 - movs r0, 0x1B - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x2 - b _080456FC - .align 2, 0 -_080455EC: .4byte 0x02024a6a -_080455F0: .4byte 0x030045c0 -_080455F4: - movs r0, 0x88 - ands r0, r4 - cmp r0, 0 - beq _08045612 - movs r0, 0x15 - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0 - b _080456FC -_08045612: - movs r0, 0x10 - ands r0, r4 - cmp r0, 0 - beq _08045630 - movs r0, 0x21 - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x4 - b _080456FC -_08045630: - movs r0, 0x20 - ands r0, r4 - cmp r0, 0 - beq _0804564E - movs r0, 0x1E - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x3 - b _080456FC -_0804564E: - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _0804566C - movs r0, 0x18 - adds r1, r7, 0 - bl sub_80457E8 - lsls r0, 24 - lsrs r0, 24 - bl sub_8043CDC - adds r6, r0, 0 - movs r0, 0x1 - b _080456FC -_0804566C: - movs r0, 0x27 - bl sub_8043CDC - adds r6, r0, 0 - movs r4, 0 - mov r2, r9 - lsls r0, r2, 4 - mov r3, r8 - lsls r3, 16 - mov r8, r3 - lsls r7, 2 - ldr r1, _080456E8 - add r0, r9 - lsls r0, 2 - adds r5, r0, r1 -_0804568A: - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - mov r2, r8 - asrs r0, r2, 16 - adds r1, r0 - adds r1, r4 - lsls r1, 5 - ldr r3, _080456EC - adds r1, r3 - adds r0, r6, 0 - ldr r2, _080456F0 - bl CpuSet - adds r4, 0x1 - cmp r4, 0x2 - ble _0804568A - ldr r0, _080456F4 - adds r0, r7, r0 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080456DC - movs r0, 0x1 - bl sub_8043CDC - ldr r2, _080456E8 - mov r3, r10 - lsls r1, r3, 4 - add r1, r10 - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, _080456EC - adds r1, r2 - ldr r2, _080456F8 - bl CpuSet -_080456DC: - mov r0, r9 - movs r1, 0x1 - bl sub_8045458 - b _080457BA - .align 2, 0 -_080456E8: .4byte 0x02020004 -_080456EC: .4byte 0x06010000 -_080456F0: .4byte 0x04000008 -_080456F4: .4byte 0x02017800 -_080456F8: .4byte 0x04000010 -_080456FC: - mov r1, r9 - lsls r5, r1, 4 - add r5, r9 - lsls r5, 2 - ldr r2, _080457C8 - adds r5, r2 - ldrb r4, [r5, 0x5] - lsrs r4, 4 - lsls r4, 4 - adds r4, 0xC - adds r4, r7 - lsls r0, 1 - ldr r1, _080457CC - adds r0, r1 - ldrh r0, [r0] - movs r3, 0x80 - lsls r3, 1 - adds r1, r4, r3 - movs r2, 0x2 - bl FillPalette - lsls r4, 1 - ldr r0, _080457D0 - adds r0, r4, r0 - ldr r1, _080457D4 - adds r4, r1 - adds r1, r4, 0 - movs r2, 0x1 - bl CpuSet - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - add r1, r8 - lsls r1, 5 - ldr r2, _080457D8 - mov r8, r2 - add r1, r8 - ldr r2, _080457DC - adds r0, r6, 0 - bl CpuSet - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0804576A - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080457B2 -_0804576A: - lsls r0, r7, 2 - ldr r1, _080457E0 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080457B2 - movs r0, 0 - bl sub_8043CDC - mov r3, r10 - lsls r4, r3, 4 - add r4, r10 - lsls r4, 2 - ldr r1, _080457C8 - adds r4, r1 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - add r1, r8 - ldr r5, _080457E4 - adds r2, r5, 0 - bl CpuSet - movs r0, 0x41 - bl sub_8043CDC - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - adds r1, 0x20 - add r1, r8 - adds r2, r5, 0 - bl CpuSet -_080457B2: - mov r0, r9 - movs r1, 0 - bl sub_8045458 -_080457BA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080457C8: .4byte 0x02020004 -_080457CC: .4byte gUnknown_08E903F8 -_080457D0: .4byte 0x0202ecc8 -_080457D4: .4byte 0x05000200 -_080457D8: .4byte 0x06010000 -_080457DC: .4byte 0x04000018 -_080457E0: .4byte 0x02017800 -_080457E4: .4byte 0x04000008 - thumb_func_end draw_status_ailment_maybe - - thumb_func_start sub_80457E8 -sub_80457E8: @ 80457E8 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsrs r2, r0, 24 - adds r0, r2, 0 - subs r0, 0x15 - cmp r0, 0xC - bhi _080458A8 - lsls r0, 2 - ldr r1, _08045804 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08045804: .4byte _08045808 - .align 2, 0 -_08045808: - .4byte _0804583C - .4byte _080458A8 - .4byte _080458A8 - .4byte _08045852 - .4byte _080458A8 - .4byte _080458A8 - .4byte _08045868 - .4byte _080458A8 - .4byte _080458A8 - .4byte _0804587E - .4byte _080458A8 - .4byte _080458A8 - .4byte _08045894 -_0804583C: - movs r2, 0x15 - cmp r3, 0 - beq _080458A8 - movs r2, 0x47 - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x65 - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x56 - b _080458A8 -_08045852: - movs r2, 0x18 - cmp r3, 0 - beq _080458A8 - movs r2, 0x4A - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x68 - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x59 - b _080458A8 -_08045868: - movs r2, 0x1B - cmp r3, 0 - beq _080458A8 - movs r2, 0x4D - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x6B - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x5C - b _080458A8 -_0804587E: - movs r2, 0x1E - cmp r3, 0 - beq _080458A8 - movs r2, 0x50 - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x6E - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x5F - b _080458A8 -_08045894: - movs r2, 0x21 - cmp r3, 0 - beq _080458A8 - movs r2, 0x53 - cmp r3, 0x1 - beq _080458A8 - movs r2, 0x71 - cmp r3, 0x2 - bne _080458A8 - movs r2, 0x62 -_080458A8: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80457E8 - - thumb_func_start sub_80458B0 -sub_80458B0: @ 80458B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08045984 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 7 - ldr r0, _08045988 - adds r6, r1, r0 - movs r1, 0x7 - mov r8, r1 - ldr r1, _0804598C - adds r0, r6, 0 - bl sub_80034D4 - movs r4, 0 -_080458EE: - movs r0, 0x2B - bl sub_8043CDC - lsls r1, r4, 6 - adds r1, r6, r1 - ldr r2, _08045990 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r8 - bcc _080458EE - movs r7, 0x3 - movs r2, 0x3 - add r2, r8 - mov r9, r2 - cmp r7, r9 - bge _08045974 - ldr r1, _08045984 - ldr r0, _08045990 - mov r10, r0 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - mov r8, r0 -_08045924: - mov r1, r8 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r5, r7, 0 - cmp r7, 0 - bge _08045934 - adds r5, r7, 0x7 -_08045934: - asrs r5, 3 - lsls r4, r5, 3 - subs r4, r7, r4 - adds r0, r4 - lsls r5, 6 - adds r0, r5 - lsls r0, 5 - ldr r2, _08045994 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - mov r1, r8 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r4, 0x8 - adds r0, r4 - adds r0, r5 - lsls r0, 5 - ldr r2, _08045994 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - adds r7, 0x1 - cmp r7, r9 - blt _08045924 -_08045974: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045984: .4byte 0x02020004 -_08045988: .4byte 0x02000520 -_0804598C: .4byte gUnknown_08400DD6 -_08045990: .4byte 0x04000008 -_08045994: .4byte 0x06010000 - thumb_func_end sub_80458B0 - - thumb_func_start sub_8045998 -sub_8045998: @ 8045998 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08045A38 - mov r8, r0 - ldr r1, _08045A3C - bl StringCopy - adds r7, r0, 0 - ldr r0, _08045A40 - ldrb r1, [r0] - adds r0, r7, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_8003504 - adds r7, r0, 0 - ldr r1, _08045A44 - bl StringAppend - ldr r0, _08045A48 - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r5, r0 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 7 - ldr r0, _08045A4C - adds r7, r4, r0 - movs r6, 0x5 - adds r0, r7, 0 - mov r1, r8 - bl sub_80034D4 - ldr r0, _08045A50 - adds r7, r4, r0 - movs r4, 0x6 -_080459F8: - ldrh r0, [r5, 0x4] - lsls r0, 22 - lsrs r2, r0, 22 - adds r0, r4, 0 - cmp r4, 0 - bge _08045A06 - adds r0, r4, 0x7 -_08045A06: - asrs r0, 3 - lsls r1, r0, 3 - subs r1, r4, r1 - adds r1, 0x18 - adds r1, r2, r1 - lsls r0, 6 - adds r1, r0 - lsls r1, 5 - ldr r0, _08045A54 - adds r1, r0 - adds r0, r7, 0 - ldr r2, _08045A58 - bl CpuSet - adds r7, 0x40 - adds r4, 0x1 - adds r0, r6, 0x6 - cmp r4, r0 - blt _080459F8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045A38: .4byte 0x020238cc -_08045A3C: .4byte gUnknown_08400DE6 -_08045A40: .4byte 0x02038808 -_08045A44: .4byte gUnknown_08400DF0 -_08045A48: .4byte 0x02020004 -_08045A4C: .4byte 0x02000520 -_08045A50: .4byte 0x02000540 -_08045A54: .4byte 0x06010000 -_08045A58: .4byte 0x04000008 - thumb_func_end sub_8045998 - - thumb_func_start sub_8045A5C -sub_8045A5C: @ 8045A5C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r1, _08045BE4 - lsls r0, 4 - add r0, r8 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08045A92 - b _08045BF0 -_08045A92: - cmp r7, 0x3 - beq _08045A9A - cmp r7, 0 - bne _08045AAE -_08045A9A: - mov r0, r9 - movs r1, 0x38 - bl PokemonGetField - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8043FC0 -_08045AAE: - cmp r7, 0x1 - bhi _08045AC8 - mov r0, r9 - movs r1, 0x39 - bl PokemonGetField - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - mov r0, r8 - movs r2, 0 - bl sub_80440EC -_08045AC8: - cmp r7, 0x2 - beq _08045AD0 - cmp r7, 0 - bne _08045AE6 -_08045AD0: - mov r0, r9 - movs r1, 0x3A - bl PokemonGetField - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - mov r0, r8 - movs r2, 0x1 - bl sub_80440EC -_08045AE6: - cmp r7, 0x5 - beq _08045AEE - cmp r7, 0 - bne _08045B22 -_08045AEE: - movs r0, 0 - bl load_gfxc_health_bar - mov r0, r9 - movs r1, 0x3A - bl PokemonGetField - adds r4, r0, 0 - mov r0, r9 - movs r1, 0x39 - bl PokemonGetField - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - mov r0, r10 - mov r1, r8 - adds r2, r4, 0 - bl sub_8043D84 - mov r0, r10 - mov r1, r8 - movs r2, 0 - movs r3, 0 - bl sub_8045C78 -_08045B22: - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - cmp r0, 0 - bne _08045BA6 - cmp r7, 0x6 - beq _08045B38 - cmp r7, 0 - bne _08045BA6 -_08045B38: - movs r0, 0x3 - bl load_gfxc_health_bar - mov r0, r9 - movs r1, 0xB - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r0, r9 - movs r1, 0x38 - bl PokemonGetField - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - movs r1, 0x19 - bl PokemonGetField - adds r3, r0, 0 - ldr r6, _08045BE8 - lsls r1, r4, 2 - ldr r2, _08045BEC - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r6 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - adds r4, r6 - ldr r2, [r4] - subs r2, r1 - ldr r0, [sp, 0x4] - str r0, [sp] - mov r0, r10 - mov r1, r8 - bl sub_8043D84 - mov r0, r10 - mov r1, r8 - movs r2, 0x1 - movs r3, 0 - bl sub_8045C78 -_08045BA6: - cmp r7, 0x4 - beq _08045BAE - cmp r7, 0 - bne _08045BB6 -_08045BAE: - mov r0, r8 - mov r1, r9 - bl sub_80451A0 -_08045BB6: - cmp r7, 0x9 - beq _08045BBE - cmp r7, 0 - bne _08045BC4 -_08045BBE: - mov r0, r8 - bl draw_status_ailment_maybe -_08045BC4: - cmp r7, 0xA - bne _08045BCE - mov r0, r8 - bl sub_80458B0 -_08045BCE: - adds r0, r7, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08045C66 - mov r0, r8 - bl sub_8045998 - b _08045C66 - .align 2, 0 -_08045BE4: .4byte 0x02020004 -_08045BE8: .4byte gExperienceTables -_08045BEC: .4byte gBaseStats -_08045BF0: - cmp r7, 0x3 - beq _08045BF8 - cmp r7, 0 - bne _08045C0C -_08045BF8: - mov r0, r9 - movs r1, 0x38 - bl PokemonGetField - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8043FC0 -_08045C0C: - cmp r7, 0x5 - beq _08045C14 - cmp r7, 0 - bne _08045C48 -_08045C14: - movs r0, 0 - bl load_gfxc_health_bar - mov r0, r9 - movs r1, 0x3A - bl PokemonGetField - adds r4, r0, 0 - mov r0, r9 - movs r1, 0x39 - bl PokemonGetField - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - mov r0, r10 - mov r1, r8 - adds r2, r4, 0 - bl sub_8043D84 - mov r0, r10 - mov r1, r8 - movs r2, 0 - movs r3, 0 - bl sub_8045C78 -_08045C48: - cmp r7, 0x4 - beq _08045C50 - cmp r7, 0 - bne _08045C58 -_08045C50: - mov r0, r8 - mov r1, r9 - bl sub_80451A0 -_08045C58: - cmp r7, 0x9 - beq _08045C60 - cmp r7, 0 - bne _08045C66 -_08045C60: - mov r0, r8 - bl draw_status_ailment_maybe -_08045C66: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8045A5C - - thumb_func_start sub_8045C78 -sub_8045C78: @ 8045C78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - cmp r2, 0 - bne _08045CBC - lsls r5, r7, 2 - adds r3, r5, r7 - lsls r3, 2 - ldr r4, _08045CB8 - adds r2, r3, r4 - ldr r0, [r2, 0x4] - ldr r1, [r2, 0x8] - ldr r2, [r2, 0xC] - adds r4, 0x10 - adds r3, r4 - movs r4, 0x6 - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - bl sub_8045F58 - adds r6, r0, 0 - adds r4, r5, 0 - b _08045D0A - .align 2, 0 -_08045CB8: .4byte 0x02017850 -_08045CBC: - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 2 - mov r10, r0 - ldr r6, _08045D50 - add r6, r10 - ldr r0, [r6, 0x8] - ldr r1, [r6, 0xC] - ldr r2, [r6, 0x4] - movs r3, 0x8 - bl sub_8046188 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08045CDE - movs r5, 0x1 -_08045CDE: - ldr r0, [r6, 0xC] - mov r8, r0 - adds r1, r5, 0 - bl __divsi3 - cmp r0, 0 - bge _08045CEE - negs r0, r0 -_08045CEE: - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r6, 0x4] - ldr r1, [r6, 0x8] - ldr r3, _08045D50 - adds r3, 0x10 - add r3, r10 - movs r2, 0x8 - str r2, [sp] - str r5, [sp, 0x4] - mov r2, r8 - bl sub_8045F58 - adds r6, r0, 0 -_08045D0A: - mov r0, r9 - cmp r0, 0x1 - beq _08045D22 - cmp r0, 0 - bne _08045D2A - ldr r0, _08045D54 - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08045D2A -_08045D22: - adds r0, r7, 0 - mov r1, r9 - bl sub_8045D58 -_08045D2A: - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - bne _08045D3E - adds r0, r4, r7 - lsls r0, 2 - ldr r1, _08045D50 - adds r0, r1 - movs r1, 0 - str r1, [r0, 0x10] -_08045D3E: - adds r0, r6, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08045D50: .4byte 0x02017850 -_08045D54: .4byte 0x02017800 - thumb_func_end sub_8045C78 - - thumb_func_start sub_8045D58 -sub_8045D58: @ 8045D58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _08045D72 - cmp r1, 0x1 - beq _08045E54 - b _08045F42 -_08045D72: - lsls r5, r6, 2 - adds r3, r5, r6 - lsls r3, 2 - ldr r4, _08045E00 - adds r2, r3, r4 - ldr r0, [r2, 0x4] - ldr r1, [r2, 0x8] - ldr r2, [r2, 0xC] - adds r4, 0x10 - adds r3, r4 - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x6 - str r4, [sp, 0x4] - bl sub_804602C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - mov r8, r1 - adds r1, r5, 0 - cmp r0, 0x18 - bhi _08045DAC - movs r2, 0x38 - mov r8, r2 - cmp r0, 0x9 - bls _08045DAC - movs r4, 0x2F - mov r8, r4 -_08045DAC: - movs r5, 0 - ldr r7, _08045E04 - adds r0, r1, r6 - lsls r6, r0, 2 -_08045DB4: - ldr r0, _08045E00 - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r4, r0, 24 - cmp r5, 0x1 - bhi _08045E10 - mov r0, r8 - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r5, 0x2 - adds r1, r2 - lsls r1, 5 - ldr r2, _08045E08 - adds r1, r2 - ldr r2, _08045E0C - bl CpuSet - b _08045E3E - .align 2, 0 -_08045E00: .4byte 0x02017850 -_08045E04: .4byte 0x02020004 -_08045E08: .4byte 0x06010000 -_08045E0C: .4byte 0x04000008 -_08045E10: - mov r0, r8 - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r5, r1 - lsls r1, 5 - ldr r4, _08045E4C - adds r1, r4 - ldr r2, _08045E50 - bl CpuSet -_08045E3E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08045DB4 - b _08045F42 - .align 2, 0 -_08045E4C: .4byte 0x06010040 -_08045E50: .4byte 0x04000008 -_08045E54: - lsls r5, r6, 2 - adds r3, r5, r6 - lsls r3, 2 - ldr r4, _08045EF0 - adds r2, r3, r4 - ldr r0, [r2, 0x4] - ldr r1, [r2, 0x8] - ldr r2, [r2, 0xC] - adds r4, 0x10 - adds r3, r4 - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x8 - str r4, [sp, 0x4] - bl sub_804602C - ldr r1, _08045EF4 - lsls r0, r6, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08045EF8 - adds r0, r1 - movs r1, 0x38 - bl PokemonGetField - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - cmp r0, 0x64 - bne _08045EAA - movs r5, 0 - movs r2, 0 -_08045E98: - mov r0, sp - adds r0, r5 - adds r0, 0x8 - strb r2, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _08045E98 -_08045EAA: - movs r5, 0 - ldr r7, _08045EFC - adds r0, r1, r6 - lsls r0, 2 - ldr r1, _08045EF0 - adds r4, r0, r1 -_08045EB6: - cmp r5, 0x3 - bhi _08045F08 - movs r0, 0xC - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r5, 0 - adds r2, 0x24 - adds r1, r2 - lsls r1, 5 - ldr r2, _08045F00 - adds r1, r2 - ldr r2, _08045F04 - bl CpuSet - b _08045F38 - .align 2, 0 -_08045EF0: .4byte 0x02017850 -_08045EF4: .4byte 0x02024a6a -_08045EF8: .4byte 0x03004360 -_08045EFC: .4byte 0x02020004 -_08045F00: .4byte 0x06010000 -_08045F04: .4byte 0x04000008 -_08045F08: - movs r0, 0xC - bl sub_8043CDC - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r7 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r5, r1 - lsls r1, 5 - ldr r2, _08045F50 - adds r1, r2 - ldr r2, _08045F54 - bl CpuSet -_08045F38: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _08045EB6 -_08045F42: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045F50: .4byte 0x06010b80 -_08045F54: .4byte 0x04000008 - thumb_func_end sub_8045D58 - - thumb_func_start sub_8045F58 -sub_8045F58: @ 8045F58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r4, r1, 0 - mov r8, r2 - adds r5, r3, 0 - ldr r1, [sp, 0x18] - ldr r0, [sp, 0x1C] - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 27 - lsrs r2, r1, 24 - ldr r1, [r5] - ldr r0, _08045F84 - cmp r1, r0 - bne _08045F8A - cmp r7, r2 - bge _08045F88 - lsls r0, r4, 8 - str r0, [r5] - b _08045F8A - .align 2, 0 -_08045F84: .4byte 0xffff8000 -_08045F88: - str r4, [r5] -_08045F8A: - mov r0, r8 - subs r4, r0 - cmp r4, 0 - bge _08045F96 - movs r4, 0 - b _08045F9C -_08045F96: - cmp r4, r7 - ble _08045F9C - adds r4, r7, 0 -_08045F9C: - cmp r7, r2 - bge _08045FB8 - ldr r0, [r5] - asrs r1, r0, 8 - adds r6, r0, 0 - cmp r4, r1 - bne _08045FC4 - movs r0, 0xFF - ands r0, r6 - cmp r0, 0 - bne _08045FC4 - movs r0, 0x1 - negs r0, r0 - b _08046020 -_08045FB8: - ldr r6, [r5] - cmp r4, r6 - bne _08045FC4 - movs r0, 0x1 - negs r0, r0 - b _08046020 -_08045FC4: - cmp r7, r2 - bge _08045FFE - lsls r0, r7, 8 - adds r1, r2, 0 - bl __divsi3 - mov r1, r8 - cmp r1, 0 - bge _08045FE2 - adds r0, r6, r0 - str r0, [r5] - asrs r2, r0, 8 - cmp r2, r4 - blt _0804601E - b _08045FF6 -_08045FE2: - subs r0, r6, r0 - str r0, [r5] - asrs r2, r0, 8 - movs r1, 0xFF - ands r0, r1 - cmp r0, 0 - ble _08045FF2 - adds r2, 0x1 -_08045FF2: - cmp r2, r4 - bgt _0804601E -_08045FF6: - lsls r0, r4, 8 - str r0, [r5] - adds r2, r4, 0 - b _0804601E -_08045FFE: - mov r0, r8 - cmp r0, 0 - bge _08046010 - ldr r0, [r5] - adds r0, r3 - str r0, [r5] - cmp r0, r4 - ble _0804601C - b _0804601A -_08046010: - ldr r0, [r5] - subs r0, r3 - str r0, [r5] - cmp r0, r4 - bge _0804601C -_0804601A: - str r4, [r5] -_0804601C: - ldr r2, [r5] -_0804601E: - adds r0, r2, 0 -_08046020: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8045F58 - - thumb_func_start sub_804602C -sub_804602C: @ 804602C - push {r4-r7,lr} - adds r4, r0, 0 - mov r12, r3 - ldr r7, [sp, 0x14] - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r6, r0, 24 - subs r5, r1, r2 - cmp r5, 0 - bge _08046044 - movs r5, 0 - b _0804604A -_08046044: - cmp r5, r4 - ble _0804604A - adds r5, r4, 0 -_0804604A: - lsls r0, r6, 27 - lsrs r3, r0, 24 - movs r1, 0 - cmp r1, r6 - bcs _08046064 - movs r2, 0 -_08046056: - adds r0, r7, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcc _08046056 -_08046064: - cmp r4, r3 - bge _08046078 - mov r1, r12 - ldr r0, [r1] - muls r0, r3 - adds r1, r4, 0 - bl __divsi3 - asrs r0, 8 - b _08046084 -_08046078: - mov r1, r12 - ldr r0, [r1] - muls r0, r3 - adds r1, r4, 0 - bl __divsi3 -_08046084: - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - cmp r3, 0 - bne _0804609A - cmp r5, 0 - ble _0804609A - movs r0, 0x1 - strb r0, [r7] - movs r3, 0x1 - b _080460BE -_0804609A: - movs r1, 0 - movs r4, 0x8 -_0804609E: - cmp r1, r6 - bcs _080460BE - cmp r2, 0x7 - bls _080460BA - adds r0, r7, r1 - strb r4, [r0] - adds r0, r2, 0 - subs r0, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - b _0804609E -_080460BA: - adds r0, r7, r1 - strb r2, [r0] -_080460BE: - adds r0, r3, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804602C - - thumb_func_start sub_80460C8 -sub_80460C8: @ 80460C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - mov r8, r3 - ldr r0, [r5] - ldr r1, [r5, 0x4] - ldr r2, [r5, 0x8] - movs r3, 0x6 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - adds r3, r6, 0 - bl sub_8045F58 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_8046128 - ldr r0, [r5] - cmp r0, 0x2F - bgt _08046108 - ldr r0, [r6] - lsls r0, 8 - lsrs r1, r0, 16 - b _0804610A -_08046108: - ldrh r1, [r6] -_0804610A: - movs r2, 0 - ldrsh r0, [r5, r2] - lsls r1, 16 - asrs r1, 16 - mov r2, r8 - bl sub_804373C - lsls r0, r7, 16 - asrs r0, 16 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80460C8 - - thumb_func_start sub_8046128 -sub_8046128: @ 8046128 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x1C - adds r5, r0, 0 - adds r3, r1, 0 - mov r8, r2 - ldr r0, [r5] - ldr r1, [r5, 0x4] - ldr r2, [r5, 0x8] - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x6 - str r4, [sp, 0x4] - bl sub_804602C - movs r3, 0 - add r7, sp, 0x10 - mov r12, r7 - ldrb r0, [r5, 0xC] - lsls r6, r0, 27 - ldr r4, [r5, 0x10] -_08046154: - lsls r2, r3, 1 - add r2, r12 - lsrs r1, r6, 15 - mov r0, sp - adds r0, r3 - adds r0, 0x8 - ldrb r0, [r0] - adds r0, r4, r0 - orrs r1, r0 - strh r1, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _08046154 - adds r0, r7, 0 - mov r1, r8 - movs r2, 0x6 - bl CpuSet - add sp, 0x1C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8046128 - - thumb_func_start sub_8046188 -sub_8046188: @ 8046188 - push {r4-r7,lr} - adds r6, r2, 0 - lsls r3, 27 - lsrs r7, r3, 24 - subs r5, r0, r1 - cmp r5, 0 - bge _0804619A - movs r5, 0 - b _080461A0 -_0804619A: - cmp r5, r6 - ble _080461A0 - adds r5, r6, 0 -_080461A0: - muls r0, r7 - adds r1, r6, 0 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - muls r0, r7 - adds r1, r6, 0 - bl __divsi3 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - subs r0, r4, r0 - cmp r0, 0 - bge _080461C8 - negs r0, r0 -_080461C8: - lsls r0, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8046188 - - thumb_func_start sub_80461D4 -sub_80461D4: @ 80461D4 - push {r4,lr} - lsls r2, 24 - lsrs r2, 24 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - muls r0, r2 - lsls r1, 16 - asrs r1, 16 - bl __divsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080461F8 - cmp r4, 0 - ble _080461F8 - movs r0, 0x1 -_080461F8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80461D4 - - thumb_func_start sub_8046200 -sub_8046200: @ 8046200 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bne _08046212 - movs r0, 0x4 - b _0804622E -_08046212: - movs r2, 0x30 - bl sub_80461D4 - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x3 - cmp r1, 0x18 - bhi _0804622E - movs r0, 0x2 - cmp r1, 0x9 - bhi _0804622E - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_0804622E: - pop {r1} - bx r1 - thumb_func_end sub_8046200 - - thumb_func_start sub_8046234 -sub_8046234: @ 8046234 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r4, r2, 24 - ldr r5, _0804636C - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _08046370 - cmp r0, r1 - bne _08046266 - adds r0, r5, 0 - bl LoadCompressedObjectPic - ldr r0, _08046374 - bl LoadCompressedObjectPalette -_08046266: - ldr r0, _08046378 - bl object_new_hidden_with_callback - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r5, r0, 4 - add r5, r8 - lsls r5, 2 - ldr r0, _0804637C - adds r5, r0 - strh r4, [r5, 0x30] - ldr r0, _08046380 - mov r9, r0 - lsls r6, 16 - asrs r0, r6, 16 - mov r10, r0 - ldr r0, _08046384 - adds r6, r0 - asrs r6, 16 - lsls r4, r7, 16 - asrs r7, r4, 16 - adds r4, r0 - asrs r4, 16 - mov r0, r9 - adds r1, r6, 0 - adds r2, r4, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0804637C - adds r1, r0 - mov r0, r8 - strh r0, [r1, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r1, 0 - bl AnimateSprite - mov r0, r9 - mov r1, r10 - adds r2, r4, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0804637C - adds r4, r0 - mov r0, r8 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0 - bl AnimateSprite - mov r0, r9 - adds r1, r6, 0 - adds r2, r7, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0804637C - adds r4, r0 - mov r0, r8 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - adds r0, r4, 0 - bl AnimateSprite - mov r0, r9 - mov r1, r10 - adds r2, r7, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0804637C - adds r4, r0 - mov r0, r8 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - adds r0, r4, 0 - bl AnimateSprite - mov r0, r8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804636C: .4byte gUnknown_081FAEA4 -_08046370: .4byte 0xffff0000 -_08046374: .4byte gUnknown_081FAEAC -_08046378: .4byte sub_8046388 -_0804637C: .4byte 0x02020004 -_08046380: .4byte gSpriteTemplate_81FAF0C -_08046384: .4byte 0xfff00000 - thumb_func_end sub_8046234 - - thumb_func_start sub_8046388 -sub_8046388: @ 8046388 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080463C0 - ldr r0, _080463B4 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldr r0, _080463B8 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080463BC - adds r0, r4, 0 - bl DestroySprite - b _080463C0 - .align 2, 0 -_080463B4: .4byte gUnknown_081FAEA4 -_080463B8: .4byte gUnknown_081FAEAC -_080463BC: - ldr r0, _080463C8 - str r0, [r4, 0x1C] -_080463C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080463C8: .4byte SpriteCallbackDummy - thumb_func_end sub_8046388 - - thumb_func_start sub_80463CC -sub_80463CC: @ 80463CC - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080463F6 - ldr r2, _080463FC - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2E] - subs r1, 0x1 - strh r1, [r0, 0x2E] - adds r0, r3, 0 - bl DestroySprite -_080463F6: - pop {r0} - bx r0 - .align 2, 0 -_080463FC: .4byte 0x02020004 - thumb_func_end sub_80463CC - - thumb_func_start sub_8046400 -sub_8046400: @ 8046400 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _08046450 - movs r0, 0x1 - strb r0, [r1] - ldr r6, _08046454 - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08046458 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0804645C - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046460 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - ldrb r0, [r6] - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08046450: .4byte 0x02024e6d -_08046454: .4byte 0x02024a60 -_08046458: .4byte 0x02017810 -_0804645C: .4byte sub_8046464 -_08046460: .4byte 0x03004b20 - thumb_func_end sub_8046400 - - thumb_func_start sub_8046464 -sub_8046464: @ 8046464 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp] - ldr r1, _08046498 - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _0804649C - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - b _08046616 - .align 2, 0 -_08046498: .4byte 0x03004b20 -_0804649C: - ldrh r0, [r1, 0xC] - mov r8, r0 - ldrb r5, [r1, 0xE] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080464C8 - ldr r1, _080464C0 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080464C4 - b _080464D6 - .align 2, 0 -_080464C0: .4byte 0x02024a6a -_080464C4: .4byte 0x030045c0 -_080464C8: - ldr r1, _08046544 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08046548 -_080464D6: - adds r0, r1 - movs r1, 0x26 - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80478DC - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _0804654C - adds r0, r1 - movs r1, 0x20 - movs r2, 0x50 - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _08046550 - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - adds r4, r6, r2 - movs r0, 0x80 - strh r0, [r4, 0x2E] - movs r3, 0 - strh r3, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x3C] - mov r2, r8 - cmp r2, 0xFE - beq _0804655C - cmp r2, 0xFF - bne _08046598 - ldr r0, _08046554 - strb r5, [r0] - movs r0, 0x18 - strh r0, [r4, 0x20] - movs r0, 0x44 - strh r0, [r4, 0x22] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _08046558 - str r1, [r0] - b _080465A6 - .align 2, 0 -_08046544: .4byte 0x02024a6a -_08046548: .4byte 0x03004360 -_0804654C: .4byte gSpriteTemplate_820AAB4 -_08046550: .4byte 0x02020004 -_08046554: .4byte 0x02024c08 -_08046558: .4byte sub_8047074 -_0804655C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x22] - ldr r0, _08046590 - strb r5, [r0] - movs r3, 0 - strh r3, [r4, 0x2E] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _08046594 - str r1, [r0] - b _080465A6 - .align 2, 0 -_08046590: .4byte 0x02024c08 -_08046594: .4byte sub_8047254 -_08046598: - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _080465C4 - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] -_080465A6: - ldr r0, _080465C8 - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r4, r1, r0 - ldr r5, _080465C4 - ldrb r0, [r5] - strh r0, [r4, 0x3A] - ldr r2, [sp] - cmp r2, 0 - bne _080465CC - mov r0, r10 - bl DestroyTask - b _08046616 - .align 2, 0 -_080465C4: .4byte 0x02024c08 -_080465C8: .4byte 0x02020004 -_080465CC: - movs r0, 0x22 - strh r0, [r4, 0x2E] - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r4, 0x36] - ldr r0, _08046628 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - mov r3, r10 - strh r3, [r4, 0x6] - ldr r1, _0804662C - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r5] - strh r1, [r0, 0x10] - ldr r1, _08046630 - str r1, [r0] - movs r0, 0x3D - bl audio_play -_08046616: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046628: .4byte 0x0000ffd8 -_0804662C: .4byte 0x03004b20 -_08046630: .4byte TaskDummy - thumb_func_end sub_8046464 - - thumb_func_start objc_0804ABD4 -objc_0804ABD4: @ 8046634 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080466D4 - ldrb r6, [r7, 0x6] - ldr r1, _080466E0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r5, [r0, 0x10] - ldrb r0, [r0, 0xC] - mov r8, r0 - adds r0, r7, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r7, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r2, [r7, 0x22] - adds r0, r2 - strh r0, [r7, 0x22] - strh r1, [r7, 0x24] - strh r1, [r7, 0x26] - strh r1, [r7, 0x38] - adds r0, r5, 0 - bl sub_8047978 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r7, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - movs r0, 0 - adds r1, r5, 0 - movs r2, 0xE - adds r3, r4, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x2E] - strh r5, [r7, 0x3A] - mov r0, r8 - strh r0, [r7, 0x3C] - adds r0, r6, 0 - bl DestroyTask - ldr r0, _080466E4 - str r0, [r7, 0x1C] -_080466D4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080466E0: .4byte 0x03004b20 -_080466E4: .4byte sub_80466E8 - thumb_func_end objc_0804ABD4 - - thumb_func_start sub_80466E8 -sub_80466E8: @ 80466E8 - ldr r1, _080466F0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080466F0: .4byte sub_80466F4 - thumb_func_end sub_80466E8 - - thumb_func_start sub_80466F4 -sub_80466F4: @ 80466F4 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x38] - adds r0, 0x1 - movs r7, 0 - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0804674E - strh r7, [r6, 0x38] - ldr r0, _08046754 - str r0, [r6, 0x1C] - ldr r5, _08046758 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804675C - adds r0, r4 - movs r1, 0x2 - bl StartSpriteAffineAnim - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x30] -_0804674E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046754: .4byte sub_8046760 -_08046758: .4byte 0x02024be0 -_0804675C: .4byte 0x02020004 - thumb_func_end sub_80466F4 - - thumb_func_start sub_8046760 -sub_8046760: @ 8046760 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _08046778 - movs r0, 0x3C - bl audio_play -_08046778: - ldr r6, _080467C4 - ldr r5, _080467C8 - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080467D0 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - movs r2, 0x3A - ldrsh r0, [r4, r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 - strh r0, [r4, 0x38] - ldr r0, _080467CC - str r0, [r4, 0x1C] - b _080467F0 - .align 2, 0 -_080467C4: .4byte 0x02020004 -_080467C8: .4byte 0x02024be0 -_080467CC: .4byte sub_80467F8 -_080467D0: - ldrh r0, [r1, 0x30] - adds r0, 0x60 - strh r0, [r1, 0x30] - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r2, 0x30 - ldrsh r0, [r1, r2] - negs r0, r0 - asrs r0, 8 - strh r0, [r1, 0x26] -_080467F0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8046760 - - thumb_func_start sub_80467F8 -sub_80467F8: @ 80467F8 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046840 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08046840 - strh r1, [r4, 0x34] - movs r0, 0x20 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - movs r0, 0 - movs r1, 0x20 - bl cosine - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0 - bl cosine - negs r0, r0 - strh r0, [r4, 0x26] - ldr r0, _08046848 - str r0, [r4, 0x1C] -_08046840: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046848: .4byte sub_804684C - thumb_func_end sub_80467F8 - - thumb_func_start sub_804684C -sub_804684C: @ 804684C - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0 - beq _08046862 - cmp r1, 0x1 - beq _080468D6 - b _08046902 -_08046862: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl cosine - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - adds r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3F - ble _08046902 - ldrh r0, [r4, 0x36] - subs r0, 0xA - strh r0, [r4, 0x36] - ldr r1, _080468AC - adds r0, r2, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _0804689E - movs r5, 0x1 -_0804689E: - cmp r0, 0x2 - beq _080468BE - cmp r0, 0x2 - bgt _080468B0 - cmp r0, 0x1 - beq _080468B6 - b _080468CE - .align 2, 0 -_080468AC: .4byte 0x00000101 -_080468B0: - cmp r0, 0x3 - beq _080468C6 - b _080468CE -_080468B6: - movs r0, 0x38 - bl audio_play - b _08046902 -_080468BE: - movs r0, 0x39 - bl audio_play - b _08046902 -_080468C6: - movs r0, 0x3A - bl audio_play - b _08046902 -_080468CE: - movs r0, 0x3B - bl audio_play - b _08046902 -_080468D6: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl cosine - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - subs r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - subs r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - cmp r1, 0 - bgt _08046902 - strh r5, [r4, 0x38] - ldr r0, _08046928 - ands r0, r2 - strh r0, [r4, 0x34] -_08046902: - cmp r5, 0 - beq _0804693A - movs r5, 0 - strh r5, [r4, 0x34] - movs r0, 0x40 - movs r1, 0x20 - bl cosine - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08046930 - ldr r0, _0804692C - str r0, [r4, 0x1C] - b _0804693A - .align 2, 0 -_08046928: .4byte 0xffffff00 -_0804692C: .4byte sub_8046C78 -_08046930: - ldr r0, _08046940 - str r0, [r4, 0x1C] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] -_0804693A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046940: .4byte sub_8046944 - thumb_func_end sub_804684C - - thumb_func_start sub_8046944 -sub_8046944: @ 8046944 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08046978 - movs r0, 0 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _08046980 - str r0, [r4, 0x1C] - movs r0, 0x17 - bl audio_play -_08046978: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046980: .4byte sub_8046984 - thumb_func_end sub_8046944 - - thumb_func_start sub_8046984 -sub_8046984: @ 8046984 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x4 - bhi _08046A84 - lsls r0, r1, 2 - ldr r1, _0804699C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804699C: .4byte _080469A0 - .align 2, 0 -_080469A0: - .4byte _080469B4 - .4byte _080469E6 - .4byte _080469B4 - .4byte _08046A3A - .4byte _08046A84 -_080469B4: - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x24] - adds r1, r0, r2 - strh r1, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bls _08046ACA - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - movs r0, 0 - strh r0, [r4, 0x38] - b _08046ACA -_080469E6: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08046A2C - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _08046A22 - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _08046ACA -_08046A22: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - b _08046ACA -_08046A2C: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08046ACA -_08046A3A: - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r2, [r4, 0x34] - adds r0, r2 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08046A5C - ldr r0, _08046A58 - str r0, [r4, 0x1C] - b _08046ACA - .align 2, 0 -_08046A58: .4byte sub_8046C78 -_08046A5C: - cmp r1, 0x4 - bne _08046A70 - cmp r0, 0x3 - bne _08046A70 - ldr r0, _08046A6C - str r0, [r4, 0x1C] - b _08046A76 - .align 2, 0 -_08046A6C: .4byte sub_8046E7C -_08046A70: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] -_08046A76: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - b _08046ACA -_08046A84: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08046ACA - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - ldr r0, _08046AB8 - ands r0, r1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _08046ABC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _08046AC4 - .align 2, 0 -_08046AB8: .4byte 0xffffff00 -_08046ABC: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08046AC4: - movs r0, 0x17 - bl audio_play -_08046ACA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8046984 - - thumb_func_start sub_8046AD0 -sub_8046AD0: @ 8046AD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08046AFC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r6, [r0, 0xC] - ldrb r3, [r0, 0xA] - ldrh r5, [r0, 0x8] - movs r2, 0x26 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x20 - bhi _08046B88 - lsls r0, 2 - ldr r1, _08046B00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08046AFC: .4byte 0x03004b20 -_08046B00: .4byte _08046B04 - .align 2, 0 -_08046B04: - .4byte _08046B88 - .4byte _08046BA6 - .4byte _08046BB2 - .4byte _08046BF6 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046BD0 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046C08 - .4byte _08046C20 - .4byte _08046C48 -_08046B88: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x18] - movs r3, 0x18 - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bgt _08046BA0 - adds r0, r2, 0x1 - strh r0, [r1, 0x18] - b _08046C72 -_08046BA0: - adds r0, r6, 0x1 - strh r0, [r1, 0x26] - b _08046C72 -_08046BA6: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - bl cry_related - b _08046BEE -_08046BB2: - bl sub_8075398 - ldr r1, _08046BCC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x1C] - movs r1, 0x14 - strh r1, [r0, 0x26] - b _08046C72 - .align 2, 0 -_08046BCC: .4byte 0x03004b20 -_08046BD0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r6, 0x1C - ldrsh r0, [r1, r6] - cmp r0, 0 - bne _08046C5A - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8075114 -_08046BEE: - adds r0, r4, 0 - bl DestroyTask - b _08046C72 -_08046BF6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r1, 0x6 - strh r1, [r0, 0x1C] - movs r1, 0x1E - strh r1, [r0, 0x26] - b _08046C72 -_08046C08: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r3, 0x1C - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08046C5A - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] -_08046C20: - bl sub_80753C4 - lsls r0, 24 - cmp r0, 0 - bne _08046C72 - bl sub_8075398 - ldr r0, _08046C44 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x1C] - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08046C72 - .align 2, 0 -_08046C44: .4byte 0x03004b20 -_08046C48: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r6, 0x1C - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _08046C60 -_08046C5A: - subs r0, r2, 0x1 - strh r0, [r1, 0x1C] - b _08046C72 -_08046C60: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - movs r2, 0 - bl sub_8075114 - adds r0, r4, 0 - bl DestroyTask -_08046C72: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8046AD0 - - thumb_func_start sub_8046C78 -sub_8046C78: @ 8046C78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_8047978 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - ldrh r1, [r6, 0x3A] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0xE - adds r3, r4, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x2E] - ldr r0, _08046D0C - str r0, [r6, 0x1C] - ldr r0, _08046D10 - ldr r1, _08046D14 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08046CE8 - b _08046E1C -_08046CE8: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08046D20 - ldr r1, _08046D18 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046D1C - adds r0, r1, r0 - movs r3, 0x19 - mov r8, r3 - b _08046D34 - .align 2, 0 -_08046D0C: .4byte sub_8046E9C -_08046D10: .4byte 0x03001770 -_08046D14: .4byte 0x0000043d -_08046D18: .4byte 0x02024a6a -_08046D1C: .4byte 0x030045c0 -_08046D20: - ldr r1, _08046D90 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046D94 - adds r0, r1, r0 - movs r1, 0xE7 - mov r8, r1 -_08046D34: - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r7, r0, 16 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08046D5A - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08046DAE -_08046D5A: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046D98 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046D9C - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08046DA4 - bl sub_80755D4 - lsls r0, 24 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046DA0 - bl m4aMPlayStop - b _08046DAE - .align 2, 0 -_08046D90: .4byte 0x02024a6a -_08046D94: .4byte 0x03004360 -_08046D98: .4byte 0x02017840 -_08046D9C: .4byte 0x020239f8 -_08046DA0: .4byte 0x03007380 -_08046DA4: - ldr r0, _08046DC8 - ldr r1, _08046DCC - movs r2, 0x80 - bl m4aMPlayVolumeControl -_08046DAE: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08046DC4 - ldr r0, _08046DD0 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08046DD4 -_08046DC4: - movs r4, 0 - b _08046DF6 - .align 2, 0 -_08046DC8: .4byte 0x03007380 -_08046DCC: .4byte 0x0000ffff -_08046DD0: .4byte 0x02017840 -_08046DD4: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08046DF0 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08046DF4 -_08046DF0: - movs r4, 0x1 - b _08046DF6 -_08046DF4: - movs r4, 0x2 -_08046DF6: - ldr r0, _08046E6C - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046E70 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r7, [r1, 0x8] - mov r3, r8 - lsls r0, r3, 24 - asrs r0, 24 - strh r0, [r1, 0xA] - strh r4, [r1, 0xC] - strh r2, [r1, 0x26] -_08046E1C: - ldr r5, _08046E74 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08046E78 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r3, 0x3A - ldrsh r0, [r6, r3] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x80 - lsls r1, 5 - strh r1, [r0, 0x30] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046E6C: .4byte sub_8046AD0 -_08046E70: .4byte 0x03004b20 -_08046E74: .4byte 0x02024be0 -_08046E78: .4byte 0x02020004 - thumb_func_end sub_8046C78 - - thumb_func_start sub_8046E7C -sub_8046E7C: @ 8046E7C - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08046E98 - str r1, [r0, 0x1C] - movs r1, 0 - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - bx lr - .align 2, 0 -_08046E98: .4byte sub_8046FBC - thumb_func_end sub_8046E7C - - thumb_func_start sub_8046E9C -sub_8046E9C: @ 8046E9C - push {r4-r7,lr} - adds r5, r0, 0 - movs r7, 0 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, _08046F00 - ldr r0, _08046F04 - adds r3, r4, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046EDE - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08046EDE: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08046F08 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r7, 0x1 - b _08046F24 - .align 2, 0 -_08046F00: .4byte 0x02020004 -_08046F04: .4byte 0x02024be0 -_08046F08: - ldr r2, _08046FA8 - adds r0, r2, 0 - ldrh r2, [r1, 0x30] - adds r0, r2 - strh r0, [r1, 0x30] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] -_08046F24: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046FA0 - cmp r7, 0 - beq _08046FA0 - ldr r2, _08046FAC - ldr r0, _08046FB0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r0, _08046FB4 - strb r2, [r0] - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - ldr r4, _08046FB8 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite - movs r3, 0 - movs r5, 0x8 - adds r2, r4, 0 - movs r4, 0x3 -_08046F78: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08046F84 - adds r3, 0x1 -_08046F84: - adds r2, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _08046F78 - cmp r3, 0x4 - bne _08046FA0 - movs r4, 0 -_08046F92: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_804794C - adds r4, 0x1 - cmp r4, 0xB - ble _08046F92 -_08046FA0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046FA8: .4byte 0xfffffee0 -_08046FAC: .4byte 0x02020004 -_08046FB0: .4byte 0x02024be0 -_08046FB4: .4byte 0x02024e6d -_08046FB8: .4byte 0x02017810 - thumb_func_end sub_8046E9C - - thumb_func_start sub_8046FBC -sub_8046FBC: @ 8046FBC - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x36] - adds r0, 0x1 - strh r0, [r6, 0x36] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x28 - beq _08047056 - cmp r1, 0x5F - bne _08046FF4 - ldr r0, _08046FEC - movs r1, 0 - strb r1, [r0] - bl m4aMPlayAllStop - ldr r0, _08046FF0 - bl audio_play - b _08047056 - .align 2, 0 -_08046FEC: .4byte 0x02024e6d -_08046FF0: .4byte 0x00000173 -_08046FF4: - ldr r0, _0804705C - cmp r1, r0 - bne _08047056 - ldr r5, _08047060 - ldr r4, _08047064 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r0, r6, 0 - bl DestroySpriteAndFreeResources - ldr r0, _08047068 - ldr r1, _0804706C - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08047056 - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 2 - ldr r0, _08047070 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08047056: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804705C: .4byte 0x0000013b -_08047060: .4byte 0x02020004 -_08047064: .4byte 0x02024be0 -_08047068: .4byte 0x03001770 -_0804706C: .4byte 0x0000043d -_08047070: .4byte 0x02017810 - thumb_func_end sub_8046FBC - - thumb_func_start sub_8047074 -sub_8047074: @ 8047074 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x19 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x36] - ldr r0, _080470BC - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x6] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080470C0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080470BC: .4byte 0x0000ffe2 -_080470C0: .4byte sub_80470C4 - thumb_func_end sub_8047074 - - thumb_func_start sub_80470C4 -sub_80470C4: @ 80470C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r0, [r5, 0x3C] - movs r1, 0xFF - mov r8, r1 - lsrs r0, 8 - subs r0, 0x23 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2C - bhi _080471B8 - ldrh r1, [r5, 0x6] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _08047126 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - movs r1, 0x2 - negs r1, r1 - adds r4, r1, 0 - ands r0, r4 - orrs r6, r0 - strh r6, [r5, 0x30] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - ands r0, r4 - orrs r7, r0 - strh r7, [r5, 0x32] - adds r0, r5, 0 - movs r1, 0x4 - bl StartSpriteAffineAnim -_08047126: - ldrh r4, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078B5C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x3 - bl __divsi3 - adds r1, r0, 0 - ldrh r0, [r5, 0x3C] - adds r0, r1 - strh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 24 - mov r2, r8 - ands r0, r2 - movs r2, 0x38 - ldrsh r1, [r5, r2] - bl sine - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldrh r1, [r5, 0x6] - adds r0, r1 - strh r0, [r5, 0x6] - lsls r0, 16 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08047176 - strh r4, [r5, 0x2E] - b _0804717E -_08047176: - lsls r0, r4, 16 - asrs r0, 16 - subs r0, 0x1 - strh r0, [r5, 0x2E] -_0804717E: - ldrh r0, [r5, 0x3C] - lsrs r0, 8 - cmp r0, 0x4F - ble _08047220 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x2 - negs r1, r1 - adds r2, r1, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r5, 0x30] - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - ands r0, r2 - orrs r0, r7 - strh r0, [r5, 0x32] - b _08047220 -_080471B8: - adds r0, r5, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _08047220 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldrb r0, [r5, 0x6] - strh r0, [r5, 0x3A] - strh r1, [r5, 0x2E] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08047214 - ldr r0, _0804720C - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08047214 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08047214 - ldr r0, _08047210 - b _08047216 - .align 2, 0 -_0804720C: .4byte 0x02017840 -_08047210: .4byte sub_8047230 -_08047214: - ldr r0, _0804722C -_08047216: - str r0, [r5, 0x1C] - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim -_08047220: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804722C: .4byte sub_8046C78 - thumb_func_end sub_80470C4 - - thumb_func_start sub_8047230 -sub_8047230: @ 8047230 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _0804724A - movs r0, 0 - strh r0, [r2, 0x2E] - ldr r0, _08047250 - str r0, [r2, 0x1C] -_0804724A: - pop {r0} - bx r0 - .align 2, 0 -_08047250: .4byte sub_8046C78 - thumb_func_end sub_8047230 - - thumb_func_start sub_8047254 -sub_8047254: @ 8047254 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080472A4 - movs r0, 0 - strh r0, [r5, 0x2E] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080472A0 - ldr r0, _08047298 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080472A0 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080472A0 - ldr r0, _0804729C - b _080472A2 - .align 2, 0 -_08047298: .4byte 0x02017840 -_0804729C: .4byte sub_8047230 -_080472A0: - ldr r0, _080472AC -_080472A2: - str r0, [r5, 0x1C] -_080472A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080472AC: .4byte sub_8046C78 - thumb_func_end sub_8047254 - - thumb_func_start sub_80472B0 -sub_80472B0: @ 80472B0 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0 - str r4, [sp] - bl sub_814086C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80472B0 - - thumb_func_start sub_80472D8 -sub_80472D8: @ 80472D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80472D8 - - thumb_func_start AddTextPrinterForMessage -AddTextPrinterForMessage: @ 80472F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - mov r9, r2 - mov r10, r3 - ldr r6, [sp, 0x24] - ldr r4, [sp, 0x28] - ldr r0, [sp, 0x2C] - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - mov r2, r10 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080473BC - bl LoadCompressedObjectPic - ldr r0, _080473C0 - bl LoadCompressedObjectPalette - ldr r0, _080473C4 - mov r1, r9 - mov r2, r10 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080473C8 - mov r8, r3 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r1, r4, r3 - strh r5, [r1, 0x2E] - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - add r2, r8 - ldrh r0, [r2, 0x20] - strh r0, [r1, 0x38] - ldrh r0, [r2, 0x22] - strh r0, [r1, 0x3A] - mov r0, r9 - strh r0, [r2, 0x20] - mov r3, r10 - strh r3, [r2, 0x22] - strh r7, [r1, 0x30] - mov r0, sp - ldrh r0, [r0] - strh r0, [r1, 0x32] - mov r3, sp - ldrh r3, [r3, 0x30] - strh r3, [r1, 0x34] - ldr r3, [sp, 0x30] - lsrs r0, r3, 16 - strh r0, [r1, 0x36] - movs r0, 0x3 - ands r6, r0 - lsls r6, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r6 - strb r0, [r1, 0x5] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, _080473CC - str r0, [r4] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080473BC: .4byte gUnknown_0820A92C -_080473C0: .4byte gUnknown_0820A98C -_080473C4: .4byte gSpriteTemplate_820AAB4 -_080473C8: .4byte 0x02020004 -_080473CC: .4byte sub_80473D0 - thumb_func_end AddTextPrinterForMessage - - thumb_func_start sub_80473D0 -sub_80473D0: @ 80473D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r1, [r6, 0x30] - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _0804747C - ldrh r0, [r6, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r4, [r6, 0x34] - ldrh r0, [r6, 0x36] - lsls r0, 16 - orrs r4, r0 - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _0804740A - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _0804740C -_0804740A: - movs r5, 0 -_0804740C: - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r5, 0 - bl sub_80472B0 - movs r0, 0x1 - mov r1, r8 - adds r2, r4, 0 - bl sub_80472D8 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x30] - ldr r0, _08047474 - str r0, [r6, 0x1C] - ldr r0, _08047478 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - movs r0, 0x80 - lsls r0, 5 - strh r0, [r4, 0x30] - strh r5, [r6, 0x3C] - b _08047480 - .align 2, 0 -_08047474: .4byte sub_804748C -_08047478: .4byte 0x02020004 -_0804747C: - subs r0, r1, 0x1 - strh r0, [r6, 0x30] -_08047480: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80473D0 - - thumb_func_start sub_804748C -sub_804748C: @ 804748C - push {r4-r7,lr} - adds r4, r0, 0 - movs r0, 0 - mov r12, r0 - movs r6, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080474B6 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080474B6: - ldr r0, _08047544 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r5, r1, r0 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080474D8 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r1, 0x1 - mov r12, r1 -_080474D8: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r7, 0x20 - ldrsh r1, [r4, r7] - subs r0, r1 - movs r1, 0x3C - ldrsh r2, [r4, r1] - muls r0, r2 - cmp r0, 0 - bge _080474EE - adds r0, 0x7F -_080474EE: - asrs r0, 7 - ldrh r7, [r4, 0x20] - adds r0, r7 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r7, 0x22 - ldrsh r1, [r4, r7] - subs r0, r1 - muls r0, r2 - cmp r0, 0 - bge _0804750A - adds r0, 0x7F -_0804750A: - asrs r0, 7 - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r3, [r5, 0x20] - strh r0, [r5, 0x22] - ldrh r2, [r4, 0x3C] - movs r7, 0x3C - ldrsh r0, [r4, r7] - cmp r0, 0x7F - bgt _0804754C - ldr r1, _08047548 - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08047530 - adds r0, 0x7 -_08047530: - asrs r0, 3 - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - adds r1, r2, 0x4 - strh r1, [r4, 0x3C] - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - b _0804755A - .align 2, 0 -_08047544: .4byte 0x02020004 -_08047548: .4byte gUnknown_08208344 -_0804754C: - ldrh r0, [r4, 0x38] - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x3A] - strh r0, [r5, 0x22] - strh r6, [r5, 0x24] - strh r6, [r5, 0x26] - movs r6, 0x1 -_0804755A: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08047578 - mov r2, r12 - cmp r2, 0 - beq _08047578 - cmp r6, 0 - beq _08047578 - adds r0, r4, 0 - bl DestroySpriteAndFreeResources -_08047578: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804748C - - thumb_func_start sub_8047580 -sub_8047580: @ 8047580 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - adds r6, r2, 0 - mov r8, r3 - ldr r5, [sp, 0x20] - ldr r4, [sp, 0x24] - ldr r0, [sp, 0x28] - mov r9, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r6, 24 - lsrs r6, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _08047624 - bl LoadCompressedObjectPic - ldr r0, _08047628 - bl LoadCompressedObjectPalette - ldr r0, _0804762C - adds r1, r6, 0 - mov r2, r8 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08047630 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r6 - mov r1, r10 - strh r1, [r2, 0x2E] - mov r4, r9 - strh r4, [r2, 0x30] - strh r7, [r2, 0x32] - mov r1, sp - ldrh r1, [r1, 0x2C] - strh r1, [r2, 0x34] - ldr r4, [sp, 0x2C] - lsrs r1, r4, 16 - strh r1, [r2, 0x36] - movs r1, 0x3 - ands r5, r1 - lsls r5, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r5 - strb r1, [r2, 0x5] - adds r6, 0x1C - adds r3, r6 - ldr r1, _08047634 - str r1, [r3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08047624: .4byte gUnknown_0820A92C -_08047628: .4byte gUnknown_0820A98C -_0804762C: .4byte gSpriteTemplate_820AAB4 -_08047630: .4byte 0x02020004 -_08047634: .4byte sub_8047638 - thumb_func_end sub_8047580 - - thumb_func_start sub_8047638 -sub_8047638: @ 8047638 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080476D0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r5, [r4, 0x34] - ldrh r0, [r4, 0x36] - lsls r0, 16 - orrs r5, r0 - adds r0, r4, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _08047672 - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _08047674 -_08047672: - movs r6, 0 -_08047674: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r4, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r6, 0 - bl sub_80472B0 - movs r0, 0x1 - mov r1, r8 - adds r2, r5, 0 - bl sub_80472D8 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x30] - ldr r0, _080476C8 - str r0, [r4, 0x1C] - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r0, _080476CC - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - strh r5, [r4, 0x30] - b _080476D4 - .align 2, 0 -_080476C8: .4byte sub_80476E0 -_080476CC: .4byte 0x02020004 -_080476D0: - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_080476D4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8047638 - - thumb_func_start sub_80476E0 -sub_80476E0: @ 80476E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080476F8 - movs r0, 0x3C - bl audio_play -_080476F8: - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08047734 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0804773C - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r5, 0x38] - ldr r0, _08047738 - str r0, [r5, 0x1C] - b _0804774C - .align 2, 0 -_08047734: .4byte 0x02020004 -_08047738: .4byte sub_8047754 -_0804773C: - ldrh r0, [r4, 0x30] - adds r0, 0x60 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - asrs r0, 8 - strh r0, [r4, 0x26] -_0804774C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80476E0 - - thumb_func_start sub_8047754 -sub_8047754: @ 8047754 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08047768 - ldr r0, _0804776C - str r0, [r2, 0x1C] -_08047768: - pop {r0} - bx r0 - .align 2, 0 -_0804776C: .4byte SpriteCallbackDummy - thumb_func_end sub_8047754 - - thumb_func_start obj_delete_and_free_associated_resources_ -obj_delete_and_free_associated_resources_: @ 8047770 - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - thumb_func_end obj_delete_and_free_associated_resources_ - - thumb_func_start sub_804777C -sub_804777C: @ 804777C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, _080477FC - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, _08047800 - adds r4, r0, r6 - movs r1, 0 - movs r0, 0x5 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x73 - strh r0, [r4, 0x24] - strh r1, [r4, 0x26] - ldr r0, _08047804 - str r0, [r4, 0x1C] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080477CA - ldrh r0, [r4, 0x2E] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_080477CA: - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r1, r0, r1 - adds r0, r6 - ldr r1, [r1] - bl _call_via_r1 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080477F4 - ldr r0, _08047808 - str r0, [r4, 0x1C] -_080477F4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080477FC: .4byte 0x03004340 -_08047800: .4byte 0x02020004 -_08047804: .4byte sub_8047830 -_08047808: .4byte sub_804780C - thumb_func_end sub_804777C - - thumb_func_start sub_804780C -sub_804780C: @ 804780C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _08047826 - movs r0, 0 - strh r0, [r1, 0x30] - ldr r0, _0804782C - str r0, [r1, 0x1C] -_08047826: - pop {r0} - bx r0 - .align 2, 0 -_0804782C: .4byte sub_8047830 - thumb_func_end sub_804780C - - thumb_func_start sub_8047830 -sub_8047830: @ 8047830 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - ldrh r1, [r2, 0x30] - subs r0, r1 - strh r0, [r2, 0x26] - ldr r0, [r2, 0x24] - cmp r0, 0 - bne _0804784E - ldr r0, _08047854 - str r0, [r2, 0x1C] -_0804784E: - pop {r0} - bx r0 - .align 2, 0 -_08047854: .4byte SpriteCallbackDummy - thumb_func_end sub_8047830 - - thumb_func_start sub_8047858 -sub_8047858: @ 8047858 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08047890 - adds r0, r5, 0 - bl object_new_hidden_with_callback - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08047894 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r2 - movs r0, 0x1 - strh r0, [r3, 0x2E] - ldr r0, _08047898 - adds r4, r0 - ldrb r0, [r4] - strh r0, [r3, 0x30] - adds r2, 0x1C - adds r1, r2 - str r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047890: .4byte oamc_804BEB4 -_08047894: .4byte 0x02020004 -_08047898: .4byte 0x03004340 - thumb_func_end sub_8047858 - - thumb_func_start oamc_804BEB4 -oamc_804BEB4: @ 804789C - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080478D8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r0, [r3, 0x2E] - movs r2, 0 - strh r0, [r1, 0x26] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080478D4 - strh r2, [r1, 0x24] - strh r2, [r1, 0x26] - adds r0, r3, 0 - bl DestroySprite -_080478D4: - pop {r0} - bx r0 - .align 2, 0 -_080478D8: .4byte 0x02020004 - thumb_func_end oamc_804BEB4 - - thumb_func_start sub_80478DC -sub_80478DC: @ 80478DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08047938 - lsls r6, r4, 3 - adds r5, r6, r0 - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _0804793C - cmp r0, r1 - bne _08047904 - adds r0, r5, 0 - bl LoadCompressedObjectPic - ldr r0, _08047940 - adds r0, r6, r0 - bl LoadCompressedObjectPalette -_08047904: - cmp r4, 0x6 - beq _08047930 - cmp r4, 0x6 - blt _08047914 - cmp r4, 0xB - bgt _08047914 - cmp r4, 0xA - bge _08047930 -_08047914: - ldr r1, _08047938 - lsls r0, r4, 3 - adds r0, r1 - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - adds r1, r0, 0 - lsls r1, 16 - ldr r0, _08047944 - lsrs r1, 11 - ldr r2, _08047948 - adds r1, r2 - bl LZDecompressVram -_08047930: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047938: .4byte gUnknown_0820A92C -_0804793C: .4byte 0xffff0000 -_08047940: .4byte gUnknown_0820A98C -_08047944: .4byte gUnknown_08D030D0 -_08047948: .4byte 0x06010100 - thumb_func_end sub_80478DC - - thumb_func_start sub_804794C -sub_804794C: @ 804794C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - ldr r0, _08047970 - lsrs r4, 21 - adds r0, r4, r0 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldr r0, _08047974 - adds r4, r0 - ldrh r0, [r4, 0x4] - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047970: .4byte gUnknown_0820A92C -_08047974: .4byte gUnknown_0820A98C - thumb_func_end sub_804794C - - thumb_func_start sub_8047978 -sub_8047978: @ 8047978 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080479A4 - ldr r1, _0804799C - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080479A0 - b _080479B2 - .align 2, 0 -_0804799C: .4byte 0x02024a6a -_080479A0: .4byte 0x030045c0 -_080479A4: - ldr r1, _080479C4 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080479C8 -_080479B2: - adds r0, r1 - movs r1, 0x26 - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080479C4: .4byte 0x02024a6a -_080479C8: .4byte 0x03004360 - thumb_func_end sub_8047978 - - thumb_func_start CheckForFlashMemory -CheckForFlashMemory: @ 80479CC - push {lr} - bl IdentifyFlash - lsls r0, 16 - cmp r0, 0 - bne _080479E8 - ldr r1, _080479E4 - movs r0, 0x1 - str r0, [r1] - bl InitFlashTimer - b _080479EE - .align 2, 0 -_080479E4: .4byte 0x03004820 -_080479E8: - ldr r1, _080479F4 - movs r0, 0 - str r0, [r1] -_080479EE: - pop {r0} - bx r0 - .align 2, 0 -_080479F4: .4byte 0x03004820 - thumb_func_end CheckForFlashMemory - - thumb_func_start sub_80479F8 -sub_80479F8: @ 80479F8 - ldr r0, _08047A00 - ldrb r0, [r0, 0x9] - bx lr - .align 2, 0 -_08047A00: .4byte 0x02024ea4 - thumb_func_end sub_80479F8 - - thumb_func_start sub_8047A04 -sub_8047A04: @ 8047A04 - ldr r1, _08047A0C - movs r0, 0 - strb r0, [r1, 0x9] - bx lr - .align 2, 0 -_08047A0C: .4byte 0x02024ea4 - thumb_func_end sub_8047A04 - - thumb_func_start sub_8047A10 -sub_8047A10: @ 8047A10 - ldr r1, _08047A18 - movs r0, 0x1 - strb r0, [r1, 0x9] - bx lr - .align 2, 0 -_08047A18: .4byte 0x02024ea4 - thumb_func_end sub_8047A10 - - thumb_func_start sub_8047A1C -sub_8047A1C: @ 8047A1C - push {lr} - movs r0, 0 - bl gpu_sync_bg_hide - ldr r1, _08047A30 - movs r0, 0x1 - strb r0, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_08047A30: .4byte 0x02024ea4 - thumb_func_end sub_8047A1C - - thumb_func_start sub_8047A34 -sub_8047A34: @ 8047A34 - ldr r1, _08047A3C - movs r0, 0 - strb r0, [r1, 0x9] - bx lr - .align 2, 0 -_08047A3C: .4byte 0x02024ea4 - thumb_func_end sub_8047A34 - - thumb_func_start sub_8047A40 -sub_8047A40: @ 8047A40 - push {r4-r6,lr} - ldr r2, _08047A78 - ldr r0, _08047A7C - ldrb r1, [r0] - movs r3, 0x8D - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - movs r6, 0 - movs r0, 0x8E - lsls r0, 2 - adds r5, r2, r0 - movs r4, 0 -_08047A5A: - ldr r1, _08047A80 - adds r1, r4, r1 - adds r0, r5, 0 - movs r2, 0x64 - bl memcpy - adds r5, 0x64 - adds r4, 0x64 - adds r6, 0x1 - cmp r6, 0x5 - ble _08047A5A - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047A78: .4byte 0x02025734 -_08047A7C: .4byte 0x03004350 -_08047A80: .4byte 0x03004360 - thumb_func_end sub_8047A40 - - thumb_func_start copy_player_party_from_sav1 -copy_player_party_from_sav1: @ 8047A84 - push {r4-r6,lr} - ldr r0, _08047AC0 - ldr r1, _08047AC4 - movs r2, 0x8D - lsls r2, 2 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - ldr r4, _08047AC8 - movs r5, 0 - movs r0, 0xFA - lsls r0, 1 - adds r6, r4, r0 -_08047A9E: - ldr r1, _08047AC4 - adds r1, r5, r1 - movs r2, 0x8E - lsls r2, 2 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy - adds r4, 0x64 - adds r5, 0x64 - cmp r4, r6 - ble _08047A9E - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047AC0: .4byte 0x03004350 -_08047AC4: .4byte 0x02025734 -_08047AC8: .4byte 0x03004360 - thumb_func_end copy_player_party_from_sav1 - - thumb_func_start sub_8047ACC -sub_8047ACC: @ 8047ACC - push {r4-r7,lr} - ldr r0, _08047AFC - ldr r4, _08047B00 - movs r1, 0x9E - lsls r1, 4 - adds r3, r0, r1 - movs r2, 0xF -_08047ADA: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047ADA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047AFC: .4byte 0x02025734 -_08047B00: .4byte 0x030048a0 - thumb_func_end sub_8047ACC - - thumb_func_start save_deserialize_npcs -save_deserialize_npcs: @ 8047B04 - push {r4-r7,lr} - ldr r0, _08047B34 - movs r1, 0x9E - lsls r1, 4 - adds r4, r0, r1 - ldr r3, _08047B38 - movs r2, 0xF -_08047B12: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047B12 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047B34: .4byte 0x02025734 -_08047B38: .4byte 0x030048a0 - thumb_func_end save_deserialize_npcs - - thumb_func_start save_serialize_game -save_serialize_game: @ 8047B3C - push {lr} - bl sub_8047A40 - bl sub_8047ACC - pop {r0} - bx r0 - thumb_func_end save_serialize_game - - thumb_func_start save_deserialize_game -save_deserialize_game: @ 8047B4C - push {lr} - bl copy_player_party_from_sav1 - bl save_deserialize_npcs - pop {r0} - bx r0 - thumb_func_end save_deserialize_game - - thumb_func_start copy_bags_and_unk_data_from_save_blocks -copy_bags_and_unk_data_from_save_blocks: @ 8047B5C - push {r4-r7,lr} - ldr r0, _08047C0C - movs r1, 0xAC - lsls r1, 3 - adds r3, r0, r1 - ldr r1, _08047C10 - movs r2, 0x13 -_08047B6A: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047B6A - ldr r1, _08047C10 - ldr r0, _08047C0C - movs r2, 0xB6 - lsls r2, 3 - adds r3, r0, r2 - adds r1, 0x50 - movs r2, 0x13 -_08047B82: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047B82 - ldr r1, _08047C10 - ldr r0, _08047C0C - movs r5, 0xC0 - lsls r5, 3 - adds r3, r0, r5 - adds r1, 0xA0 - movs r2, 0xF -_08047B9A: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047B9A - ldr r1, _08047C10 - ldr r0, _08047C0C - movs r6, 0xC8 - lsls r6, 3 - adds r3, r0, r6 - adds r1, 0xE0 - movs r2, 0x3F -_08047BB2: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047BB2 - ldr r1, _08047C10 - ldr r0, _08047C0C - movs r7, 0xE8 - lsls r7, 3 - adds r3, r0, r7 - movs r0, 0xF0 - lsls r0, 1 - adds r1, r0 - movs r2, 0x2D -_08047BCE: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047BCE - ldr r0, _08047C10 - ldr r4, _08047C0C - movs r1, 0xA6 - lsls r1, 2 - adds r3, r0, r1 - ldr r2, _08047C14 - mov r12, r2 - movs r2, 0xF -_08047BE8: - adds r1, r3, 0 - mov r5, r12 - adds r0, r4, r5 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047BE8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047C0C: .4byte 0x02025734 -_08047C10: .4byte 0x020291f4 -_08047C14: .4byte 0x00002b4c - thumb_func_end copy_bags_and_unk_data_from_save_blocks - - thumb_func_start copy_bags_and_unk_data_to_save_blocks -copy_bags_and_unk_data_to_save_blocks: @ 8047C18 - push {r4-r7,lr} - ldr r0, _08047CCC - ldr r3, _08047CD0 - movs r2, 0xAC - lsls r2, 3 - adds r1, r0, r2 - movs r2, 0x13 -_08047C26: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C26 - ldr r1, _08047CCC - ldr r0, _08047CD0 - adds r3, r0, 0 - adds r3, 0x50 - movs r5, 0xB6 - lsls r5, 3 - adds r1, r5 - movs r2, 0x13 -_08047C40: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C40 - ldr r1, _08047CCC - ldr r0, _08047CD0 - adds r3, r0, 0 - adds r3, 0xA0 - movs r6, 0xC0 - lsls r6, 3 - adds r1, r6 - movs r2, 0xF -_08047C5A: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C5A - ldr r1, _08047CCC - ldr r0, _08047CD0 - adds r3, r0, 0 - adds r3, 0xE0 - movs r7, 0xC8 - lsls r7, 3 - adds r1, r7 - movs r2, 0x3F -_08047C74: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C74 - ldr r1, _08047CCC - ldr r0, _08047CD0 - movs r2, 0xF0 - lsls r2, 1 - adds r3, r0, r2 - movs r5, 0xE8 - lsls r5, 3 - adds r1, r5 - movs r2, 0x2D -_08047C90: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C90 - ldr r0, _08047CCC - ldr r4, _08047CD0 - ldr r6, _08047CD4 - adds r3, r0, r6 - movs r7, 0xA6 - lsls r7, 2 - mov r12, r7 - movs r2, 0xF -_08047CAA: - adds r1, r3, 0 - mov r5, r12 - adds r0, r4, r5 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047CAA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047CCC: .4byte 0x02025734 -_08047CD0: .4byte 0x020291f4 -_08047CD4: .4byte 0x00002b4c - thumb_func_end copy_bags_and_unk_data_to_save_blocks - - thumb_func_start sub_8047CD8 -sub_8047CD8: @ 8047CD8 - push {lr} - ldr r0, _08047CE4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08047CE4: .4byte sub_8047EC0 - thumb_func_end sub_8047CD8 - - thumb_func_start sub_8047CE8 -sub_8047CE8: @ 8047CE8 - push {r4-r6,lr} - ldr r6, _08047D44 - ldr r5, _08047D48 - ldr r1, [r5] - ldr r2, _08047D4C - adds r0, r6, 0 - movs r3, 0xC - bl sub_804AFB8 - bl GetMultiplayerId - lsls r0, 24 - ldr r1, [r5, 0xC] - movs r3, 0x80 - lsls r3, 17 - eors r3, r0 - lsrs r3, 24 - lsls r2, r3, 3 - subs r2, r3 - lsls r2, 2 - ldr r0, _08047D50 - adds r2, r0 - adds r0, r6, 0 - movs r3, 0xC - bl sub_804AFB8 - ldr r1, [r5, 0x18] - ldr r4, _08047D54 - ldr r2, [r4] - adds r0, r6, 0 - movs r3, 0x8 - bl sub_804AFB8 - ldr r0, [r4, 0x4] - ldr r1, [r5, 0x20] - movs r2, 0x14 - bl sub_804ACD8 - movs r0, 0x3 - movs r1, 0 - bl nullsub_5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047D44: .4byte gWindowConfig_81E725C -_08047D48: .4byte 0x020296cc -_08047D4C: .4byte 0x02024ea4 -_08047D50: .4byte 0x03002978 -_08047D54: .4byte gUnknown_0820C14C - thumb_func_end sub_8047CE8 - - thumb_func_start sub_8047D58 -sub_8047D58: @ 8047D58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - ldr r0, _08047E30 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - cmp r0, 0x5 - bls _08047D72 - movs r1, 0x1 -_08047D72: - movs r5, 0 - lsls r2, r1, 2 - mov r6, sp - ldr r0, _08047E34 - adds r1, r0, 0x1 - adds r1, r2 - mov r8, r1 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r4, r0, 16 -_08047D86: - mov r1, sp - ldr r0, _08047E38 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldrh r0, [r6] - adds r0, r5 - strh r0, [r6] - asrs r1, r4, 16 - mov r0, sp - mov r3, r8 - ldrb r2, [r3] - movs r3, 0x1 - bl CreateSprite - movs r7, 0x80 - lsls r7, 14 - adds r4, r7 - adds r5, 0x1 - cmp r5, 0x2 - ble _08047D86 - bl GetMultiplayerId - lsls r0, 24 - movs r1, 0x80 - lsls r1, 17 - eors r1, r0 - lsrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _08047E3C - adds r0, r1 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - cmp r0, 0x5 - bls _08047DDA - movs r1, 0x1 -_08047DDA: - movs r5, 0 - lsls r2, r1, 2 - mov r6, sp - ldr r0, _08047E40 - adds r1, r2, r0 - mov r8, r1 - subs r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r4, r0, 16 -_08047DEE: - mov r1, sp - ldr r0, _08047E38 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - adds r0, r5, 0x3 - ldrh r1, [r6] - adds r0, r1 - strh r0, [r6] - asrs r1, r4, 16 - mov r0, sp - mov r3, r8 - ldrb r2, [r3] - movs r3, 0x1 - bl CreateSprite - movs r7, 0x80 - lsls r7, 14 - adds r4, r7 - adds r5, 0x1 - cmp r5, 0x2 - ble _08047DEE - movs r0, 0x5 - movs r1, 0 - bl nullsub_5 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047E30: .4byte 0x02024ea4 -_08047E34: .4byte gUnknown_0820C2E6 -_08047E38: .4byte gSpriteTemplate_820C0EC -_08047E3C: .4byte 0x03002978 -_08047E40: .4byte gUnknown_0820C2E9 - thumb_func_end sub_8047D58 - - thumb_func_start sub_8047E44 -sub_8047E44: @ 8047E44 - push {r4-r7,lr} - sub sp, 0x18 - movs r4, 0 - mov r5, sp - movs r6, 0xD6 - lsls r6, 16 -_08047E50: - mov r1, sp - ldr r0, _08047EBC - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - adds r0, r4, 0x6 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - asrs r1, r6, 16 - mov r0, sp - movs r2, 0x98 - movs r3, 0x1 - bl CreateSprite - movs r2, 0x80 - lsls r2, 14 - adds r6, r2 - adds r4, 0x1 - cmp r4, 0x1 - ble _08047E50 - movs r4, 0 - mov r5, sp - movs r6, 0xC0 - lsls r6, 13 -_08047E84: - mov r1, sp - ldr r0, _08047EBC - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - adds r0, r4, 0 - adds r0, 0x8 - ldrh r3, [r5] - adds r0, r3 - strh r0, [r5] - asrs r1, r6, 16 - mov r0, sp - movs r2, 0x96 - movs r3, 0x1 - bl CreateSprite - movs r7, 0x80 - lsls r7, 14 - adds r6, r7 - adds r4, 0x1 - cmp r4, 0x4 - ble _08047E84 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047EBC: .4byte gSpriteTemplate_820C0EC - thumb_func_end sub_8047E44 - - thumb_func_start sub_8047EC0 -sub_8047EC0: @ 8047EC0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r1, _08047EE4 - ldr r2, _08047EE8 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x15 - bls _08047ED8 - b _080484C6 -_08047ED8: - lsls r0, 2 - ldr r1, _08047EEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08047EE4: .4byte 0x03001770 -_08047EE8: .4byte 0x0000043c -_08047EEC: .4byte _08047EF0 - .align 2, 0 -_08047EF0: - .4byte _08047F48 - .4byte _08048048 - .4byte _080480B4 - .4byte _080480E0 - .4byte _08048130 - .4byte _08048160 - .4byte _08048172 - .4byte _080482B4 - .4byte _080482DC - .4byte _08048300 - .4byte _08048328 - .4byte _0804834C - .4byte _08048360 - .4byte _080483B8 - .4byte _08048400 - .4byte _08048418 - .4byte _08048430 - .4byte _08048448 - .4byte _0804845A - .4byte _08048470 - .4byte _08048488 - .4byte _080484A8 -_08047F48: - ldr r5, _08048018 - ldr r6, _0804801C - str r6, [r5] - bl sub_804AA88 - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, [r5] - adds r0, 0xC8 - ldr r1, _08048020 - bl sub_804A964 - ldr r0, _08048024 - bl SetVBlankCallback - ldr r0, _08048028 - bl sub_8071C4C - ldr r4, _0804802C - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, [r5] - adds r0, 0x4 - adds r1, r4, 0 - bl InitWindowFromConfig - movs r0, 0x14 - bl sub_8064EF4 - ldr r1, [r5] - adds r1, 0x7A - movs r4, 0 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0x4 - bl sub_8064F08 - bl sub_8071EF4 - bl sub_809D51C - ldr r0, [r5] - adds r0, 0x75 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7B - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7C - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x80 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x81 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x87 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0xB4 - strb r4, [r0] - ldr r0, _08048030 - strb r4, [r0] - ldr r1, _08048034 - ldr r3, _08048038 - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - bl sub_804AA0C - add r0, sp, 0x10 - strh r4, [r0] - movs r0, 0xC0 - lsls r0, 7 - adds r1, r6, r0 - ldr r2, _0804803C - add r0, sp, 0x10 - bl CpuSet - ldr r1, _08048040 - movs r2, 0xD8 - lsls r2, 7 - adds r6, r2 - adds r0, r1, 0 - adds r0, 0x30 - ldr r2, _08048044 -_0804800A: - str r6, [r0] - adds r6, r2 - subs r0, 0x4 - cmp r0, r1 - bge _0804800A - b _080484C6 - .align 2, 0 -_08048018: .4byte 0x03004824 -_0804801C: .4byte 0x02017000 -_08048020: .4byte 0x06002800 -_08048024: .4byte sub_80489F4 -_08048028: .4byte gWindowConfig_81E6CE4 -_0804802C: .4byte gWindowConfig_81E6F84 -_08048030: .4byte 0x03000508 -_08048034: .4byte 0x03001770 -_08048038: .4byte 0x0000043c -_0804803C: .4byte 0x01000680 -_08048040: .4byte 0x020296cc -_08048044: .4byte 0xffffff00 -_08048048: - ldr r1, _08048098 - ldr r3, _0804809C - adds r0, r3, 0 - strh r0, [r1] - bl OpenLink - movs r6, 0 - movs r4, 0 -_08048058: - movs r0, 0x64 - muls r0, r6 - ldr r1, _080480A0 - adds r0, r1 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0 - movs r2, 0 - movs r3, 0x20 - bl create_pokemon_set_level - adds r6, 0x1 - cmp r6, 0x5 - ble _08048058 - ldr r1, _080480A4 - ldr r0, _080480A8 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, _080480AC - ldr r0, [r0] - adds r0, 0xB4 - strb r2, [r0] - ldr r0, _080480B0 - movs r1, 0x1 - bl CreateTask - b _080484C6 - .align 2, 0 -_08048098: .4byte 0x03002b74 -_0804809C: .4byte 0x00001122 -_080480A0: .4byte 0x030045c0 -_080480A4: .4byte 0x03001770 -_080480A8: .4byte 0x0000043c -_080480AC: .4byte 0x03004824 -_080480B0: .4byte sub_8083C50 -_080480B4: - ldr r2, _080480D8 - ldr r1, [r2] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0xB4 - ldrb r0, [r1] - cmp r0, 0xB - bhi _080480CE - b _080484C6 -_080480CE: - movs r0, 0 - strb r0, [r1] - ldr r2, _080480DC - adds r1, r3, r2 - b _08048498 - .align 2, 0 -_080480D8: .4byte 0x03004824 -_080480DC: .4byte 0x0000043c -_080480E0: - bl GetLinkPlayerCount_2 - adds r4, r0, 0 - bl sub_800820C - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcs _080480F4 - b _080484C6 -_080480F4: - bl IsLinkMaster - lsls r0, 24 - cmp r0, 0 - beq _08048120 - ldr r0, _0804811C - ldr r1, [r0] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bhi _08048114 - b _080484C6 -_08048114: - bl sub_8007F4C - b _08048492 - .align 2, 0 -_0804811C: .4byte 0x03004824 -_08048120: - ldr r1, _08048128 - ldr r0, _0804812C - adds r1, r0 - b _08048498 - .align 2, 0 -_08048128: .4byte 0x03001770 -_0804812C: .4byte 0x0000043c -_08048130: - ldr r0, _08048154 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0804813A - b _080484C6 -_0804813A: - bl IsLinkPlayerDataExchangeComplete - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08048148 - b _080484C6 -_08048148: - bl calc_player_party_count - ldr r1, _08048158 - ldr r2, _0804815C - adds r1, r2 - b _08048498 - .align 2, 0 -_08048154: .4byte 0x03002fa4 -_08048158: .4byte 0x03001770 -_0804815C: .4byte 0x0000043c -_08048160: - bl sub_8048D44 - lsls r0, 24 - cmp r0, 0 - bne _0804816C - b _080484C6 -_0804816C: - bl sub_804AF84 - b _08048492 -_08048172: - bl calc_enemy_party_count - ldr r4, _08048294 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x1D - str r1, [sp] - movs r1, 0x13 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowRect_DefaultPalette - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r0, [r4] - ldr r1, _08048298 - ldrb r1, [r1] - adds r0, 0x42 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _0804829C - ldrb r1, [r1] - adds r0, 0x43 - strb r1, [r0] - movs r6, 0 - ldr r0, [r4] - adds r0, 0x42 - ldrb r0, [r0] - cmp r6, r0 - bge _08048216 - mov r8, r4 - ldr r7, _080482A0 -_080481BA: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _080482A4 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - bl PokemonGetField - ldrb r2, [r7] - lsls r2, 19 - movs r1, 0xE0 - lsls r1, 12 - adds r2, r1 - asrs r2, 16 - ldrb r3, [r7, 0x1] - lsls r3, 19 - ldr r1, _080482A8 - adds r3, r1 - asrs r3, 16 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - adds r0, r5, 0 - ldr r1, _080482AC - bl sub_809D2FC - mov r2, r8 - ldr r1, [r2] - adds r1, 0x34 - adds r1, r6 - strb r0, [r1] - adds r7, 0x2 - adds r6, 0x1 - ldr r0, [r2] - adds r0, 0x42 - ldrb r0, [r0] - cmp r6, r0 - blt _080481BA -_08048216: - movs r6, 0 - ldr r1, _08048294 - ldr r0, [r1] - adds r0, 0x43 - ldrb r0, [r0] - cmp r6, r0 - bge _0804828A - ldr r0, _080482A0 - mov r8, r1 - adds r7, r0, 0 - adds r7, 0xC -_0804822C: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _080482B0 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - bl PokemonGetField - ldrb r2, [r7] - lsls r2, 19 - movs r3, 0xE0 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - ldrb r3, [r7, 0x1] - lsls r3, 19 - ldr r1, _080482A8 - adds r3, r1 - asrs r3, 16 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - adds r0, r5, 0 - ldr r1, _080482AC - bl sub_809D2FC - mov r2, r8 - ldr r1, [r2] - adds r1, 0x3A - adds r1, r6 - strb r0, [r1] - adds r7, 0x2 - adds r6, 0x1 - ldr r0, [r2] - adds r0, 0x43 - ldrb r0, [r0] - cmp r6, r0 - blt _0804822C -_0804828A: - movs r0, 0x2 - movs r1, 0 - bl nullsub_5 - b _08048492 - .align 2, 0 -_08048294: .4byte 0x03004824 -_08048298: .4byte 0x03004350 -_0804829C: .4byte 0x030045b8 -_080482A0: .4byte gUnknown_0820C29C -_080482A4: .4byte 0x03004360 -_080482A8: .4byte 0xfff40000 -_080482AC: .4byte sub_809D62C -_080482B0: .4byte 0x030045c0 -_080482B4: - bl sub_806DA98 - ldr r0, _080482D0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x42 - adds r1, 0x34 - movs r2, 0 - bl sub_806DB90 - ldr r1, _080482D4 - ldr r0, _080482D8 - adds r1, r0 - b _08048498 - .align 2, 0 -_080482D0: .4byte 0x03004824 -_080482D4: .4byte 0x03001770 -_080482D8: .4byte 0x0000043c -_080482DC: - ldr r0, _080482F4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x42 - adds r1, 0x34 - movs r2, 0x1 - bl sub_806DB90 - ldr r1, _080482F8 - ldr r2, _080482FC - adds r1, r2 - b _08048498 - .align 2, 0 -_080482F4: .4byte 0x03004824 -_080482F8: .4byte 0x03001770 -_080482FC: .4byte 0x0000043c -_08048300: - bl sub_8047CE8 - ldr r1, _0804831C - ldr r3, _08048320 - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, _08048324 - ldr r0, [r0] - adds r0, 0xB4 - strb r2, [r0] - b _080484C6 - .align 2, 0 -_0804831C: .4byte 0x03001770 -_08048320: .4byte 0x0000043c -_08048324: .4byte 0x03004824 -_08048328: - movs r0, 0x4 - movs r1, 0 - bl nullsub_5 - bl sub_804ABF8 - lsls r0, 24 - cmp r0, 0 - bne _0804833C - b _080484C6 -_0804833C: - ldr r1, _08048344 - ldr r0, _08048348 - adds r1, r0 - b _08048498 - .align 2, 0 -_08048344: .4byte 0x03001770 -_08048348: .4byte 0x0000043c -_0804834C: - bl sub_8047D58 - ldr r1, _08048358 - ldr r2, _0804835C - adds r1, r2 - b _08048498 - .align 2, 0 -_08048358: .4byte 0x03001770 -_0804835C: .4byte 0x0000043c -_08048360: - bl sub_8047E44 - ldr r0, _080483A4 - ldr r2, _080483A8 - ldrb r1, [r2] - lsls r1, 19 - movs r3, 0x80 - lsls r3, 14 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2, 0x1] - lsls r2, 3 - movs r3, 0x2 - bl CreateSprite - ldr r2, _080483AC - ldr r1, [r2] - adds r1, 0x40 - movs r3, 0 - strb r0, [r1] - ldr r0, [r2] - adds r0, 0x41 - strb r3, [r0] - ldr r1, _080483B0 - ldr r0, _080483B4 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x6 - movs r1, 0 - bl nullsub_5 - b _080484C6 - .align 2, 0 -_080483A4: .4byte gSpriteTemplate_820C134 -_080483A8: .4byte gUnknown_0820C29C -_080483AC: .4byte 0x03004824 -_080483B0: .4byte 0x03001770 -_080483B4: .4byte 0x0000043c -_080483B8: - movs r0, 0 - bl sub_804ACF4 - movs r0, 0 - bl sub_804A41C - ldr r2, _080483F0 - ldr r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - bl sub_8048C70 - ldr r1, _080483F4 - ldr r2, _080483F8 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x7 - movs r1, 0 - bl nullsub_5 - ldr r0, _080483FC - bl sub_8075474 - b _080484C6 - .align 2, 0 -_080483F0: .4byte 0x03004824 -_080483F4: .4byte 0x03001770 -_080483F8: .4byte 0x0000043c -_080483FC: .4byte 0x000001b3 -_08048400: - movs r0, 0x1 - bl sub_804ACF4 - movs r0, 0x1 - bl sub_804A41C - ldr r1, _08048428 - ldr r3, _0804842C - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08048418: - movs r0, 0 - bl sub_8048B0C - ldr r1, _08048428 - ldr r0, _0804842C - adds r1, r0 - b _08048498 - .align 2, 0 -_08048428: .4byte 0x03001770 -_0804842C: .4byte 0x0000043c -_08048430: - movs r0, 0x1 - bl sub_8048B0C - ldr r1, _08048440 - ldr r2, _08048444 - adds r1, r2 - b _08048498 - .align 2, 0 -_08048440: .4byte 0x03001770 -_08048444: .4byte 0x0000043c -_08048448: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08048492 -_0804845A: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0804846C - adds r1, r3, r0 - b _08048498 - .align 2, 0 -_0804846C: .4byte 0x0000043c -_08048470: - movs r0, 0 - bl sub_804AE3C - ldr r1, _08048480 - ldr r2, _08048484 - adds r1, r2 - b _08048498 - .align 2, 0 -_08048480: .4byte 0x03001770 -_08048484: .4byte 0x0000043c -_08048488: - movs r0, 0x1 - bl sub_804AE3C - bl sub_804AF10 -_08048492: - ldr r1, _080484A0 - ldr r3, _080484A4 - adds r1, r3 -_08048498: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080484C6 - .align 2, 0 -_080484A0: .4byte 0x03001770 -_080484A4: .4byte 0x0000043c -_080484A8: - ldr r0, _080484E4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080484C6 - ldr r0, _080484E8 - str r0, [r3] - ldr r0, _080484EC - bl SetMainCallback2 - ldr r0, _080484F0 - strb r4, [r0] -_080484C6: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080484E4: .4byte 0x0202f388 -_080484E8: .4byte sub_80494D8 -_080484EC: .4byte sub_8048AB4 -_080484F0: .4byte 0x03000508 - thumb_func_end sub_8047EC0 - - thumb_func_start sub_80484F4 -sub_80484F4: @ 80484F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r1, _08048518 - ldr r2, _0804851C - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x15 - bls _0804850C - b _080489CA -_0804850C: - lsls r0, 2 - ldr r1, _08048520 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048518: .4byte 0x03001770 -_0804851C: .4byte 0x0000043c -_08048520: .4byte _08048524 - .align 2, 0 -_08048524: - .4byte _0804857C - .4byte _0804865C - .4byte _08048668 - .4byte _08048674 - .4byte _08048680 - .4byte _08048694 - .4byte _080486A0 - .4byte _080487E8 - .4byte _08048810 - .4byte _08048834 - .4byte _0804885C - .4byte _08048880 - .4byte _08048894 - .4byte _080489CA - .4byte _080489CA - .4byte _08048914 - .4byte _0804891C - .4byte _08048950 - .4byte _08048970 - .4byte _08048988 - .4byte _08048994 - .4byte _080489B0 -_0804857C: - ldr r5, _08048630 - ldr r6, _08048634 - str r6, [r5] - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, [r5] - adds r0, 0xC8 - ldr r1, _08048638 - bl sub_804A964 - ldr r0, _0804863C - bl SetVBlankCallback - ldr r0, _08048640 - bl sub_8071C4C - ldr r4, _08048644 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, [r5] - adds r0, 0x4 - adds r1, r4, 0 - bl InitWindowFromConfig - movs r0, 0x14 - bl sub_8064EF4 - ldr r1, [r5] - adds r1, 0x7A - movs r4, 0 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0x4 - bl sub_8064F08 - bl sub_8071EF4 - bl sub_809D51C - ldr r0, [r5] - adds r0, 0x75 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7B - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7C - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x80 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x81 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x87 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0xB4 - strb r4, [r0] - ldr r0, _08048648 - strb r4, [r0] - ldr r1, _0804864C - ldr r3, _08048650 - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _08048654 - movs r5, 0xD8 - lsls r5, 7 - adds r6, r5 - adds r0, r1, 0 - adds r0, 0x30 - ldr r2, _08048658 -_08048622: - str r6, [r0] - adds r6, r2 - subs r0, 0x4 - cmp r0, r1 - bge _08048622 - b _080489CA - .align 2, 0 -_08048630: .4byte 0x03004824 -_08048634: .4byte 0x02017000 -_08048638: .4byte 0x06002800 -_0804863C: .4byte sub_80489F4 -_08048640: .4byte gWindowConfig_81E6CE4 -_08048644: .4byte gWindowConfig_81E6F84 -_08048648: .4byte 0x03000508 -_0804864C: .4byte 0x03001770 -_08048650: .4byte 0x0000043c -_08048654: .4byte 0x020296cc -_08048658: .4byte 0xffffff00 -_0804865C: - ldr r0, _08048664 - adds r1, r2, r0 - b _0804883E - .align 2, 0 -_08048664: .4byte 0x0000043c -_08048668: - ldr r3, _08048670 - adds r1, r2, r3 - b _0804899E - .align 2, 0 -_08048670: .4byte 0x0000043c -_08048674: - ldr r5, _0804867C - adds r1, r2, r5 - b _0804899E - .align 2, 0 -_0804867C: .4byte 0x0000043c -_08048680: - bl calc_player_party_count - ldr r1, _0804868C - ldr r0, _08048690 - adds r1, r0 - b _0804899E - .align 2, 0 -_0804868C: .4byte 0x03001770 -_08048690: .4byte 0x0000043c -_08048694: - ldr r3, _0804869C - adds r1, r2, r3 - b _0804899E - .align 2, 0 -_0804869C: .4byte 0x0000043c -_080486A0: - bl calc_enemy_party_count - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r4, _080487C0 - ldr r0, [r4] - ldr r1, _080487C4 - ldrb r1, [r1] - adds r0, 0x42 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _080487C8 - ldrb r1, [r1] - adds r0, 0x43 - strb r1, [r0] - movs r0, 0 - bl sub_804A41C - movs r0, 0x1 - bl sub_804A41C - movs r6, 0 - ldr r0, [r4] - adds r0, 0x42 - ldrb r0, [r0] - cmp r6, r0 - bge _0804873C - mov r8, r4 - ldr r7, _080487CC -_080486DE: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _080487D0 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - bl PokemonGetField - ldrb r2, [r7] - lsls r2, 19 - movs r1, 0xE0 - lsls r1, 12 - adds r2, r1 - asrs r2, 16 - ldrb r3, [r7, 0x1] - lsls r3, 19 - ldr r1, _080487D4 - adds r3, r1 - asrs r3, 16 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - adds r0, r5, 0 - ldr r1, _080487D8 - bl sub_809D2FC - mov r2, r8 - ldr r1, [r2] - adds r1, 0x34 - adds r1, r6 - strb r0, [r1] - adds r7, 0x2 - adds r6, 0x1 - ldr r0, [r2] - adds r0, 0x42 - ldrb r0, [r0] - cmp r6, r0 - blt _080486DE -_0804873C: - movs r6, 0 - ldr r1, _080487C0 - ldr r0, [r1] - adds r0, 0x43 - ldrb r0, [r0] - cmp r6, r0 - bge _080487B0 - ldr r0, _080487CC - mov r8, r1 - adds r7, r0, 0 - adds r7, 0xC -_08048752: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _080487DC - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - bl PokemonGetField - ldrb r2, [r7] - lsls r2, 19 - movs r3, 0xE0 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - ldrb r3, [r7, 0x1] - lsls r3, 19 - ldr r1, _080487D4 - adds r3, r1 - asrs r3, 16 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - adds r0, r5, 0 - ldr r1, _080487D8 - bl sub_809D2FC - mov r2, r8 - ldr r1, [r2] - adds r1, 0x3A - adds r1, r6 - strb r0, [r1] - adds r7, 0x2 - adds r6, 0x1 - ldr r0, [r2] - adds r0, 0x43 - ldrb r0, [r0] - cmp r6, r0 - blt _08048752 -_080487B0: - movs r0, 0x2 - movs r1, 0 - bl nullsub_5 - ldr r1, _080487E0 - ldr r3, _080487E4 - adds r1, r3 - b _0804899E - .align 2, 0 -_080487C0: .4byte 0x03004824 -_080487C4: .4byte 0x03004350 -_080487C8: .4byte 0x030045b8 -_080487CC: .4byte gUnknown_0820C29C -_080487D0: .4byte 0x03004360 -_080487D4: .4byte 0xfff40000 -_080487D8: .4byte sub_809D62C -_080487DC: .4byte 0x030045c0 -_080487E0: .4byte 0x03001770 -_080487E4: .4byte 0x0000043c -_080487E8: - bl sub_806DA98 - ldr r0, _08048804 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x42 - adds r1, 0x34 - movs r2, 0 - bl sub_806DB90 - ldr r1, _08048808 - ldr r5, _0804880C - adds r1, r5 - b _0804899E - .align 2, 0 -_08048804: .4byte 0x03004824 -_08048808: .4byte 0x03001770 -_0804880C: .4byte 0x0000043c -_08048810: - ldr r0, _08048828 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x42 - adds r1, 0x34 - movs r2, 0x1 - bl sub_806DB90 - ldr r1, _0804882C - ldr r0, _08048830 - adds r1, r0 - b _0804899E - .align 2, 0 -_08048828: .4byte 0x03004824 -_0804882C: .4byte 0x03001770 -_08048830: .4byte 0x0000043c -_08048834: - bl sub_8047CE8 - ldr r1, _08048850 - ldr r2, _08048854 - adds r1, r2 -_0804883E: - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, _08048858 - ldr r0, [r0] - adds r0, 0xB4 - strb r2, [r0] - b _080489CA - .align 2, 0 -_08048850: .4byte 0x03001770 -_08048854: .4byte 0x0000043c -_08048858: .4byte 0x03004824 -_0804885C: - movs r0, 0x4 - movs r1, 0 - bl nullsub_5 - bl sub_804ABF8 - lsls r0, 24 - cmp r0, 0 - bne _08048870 - b _080489CA -_08048870: - ldr r1, _08048878 - ldr r3, _0804887C - adds r1, r3 - b _0804899E - .align 2, 0 -_08048878: .4byte 0x03001770 -_0804887C: .4byte 0x0000043c -_08048880: - bl sub_8047D58 - ldr r1, _0804888C - ldr r5, _08048890 - adds r1, r5 - b _0804899E - .align 2, 0 -_0804888C: .4byte 0x03001770 -_08048890: .4byte 0x0000043c -_08048894: - bl sub_8047E44 - ldr r2, _080488AC - ldr r0, _080488B0 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x41 - ldrb r0, [r1] - cmp r0, 0x5 - bhi _080488B4 - ldrb r0, [r2, 0x9] - b _080488B8 - .align 2, 0 -_080488AC: .4byte 0x02018000 -_080488B0: .4byte 0x03004824 -_080488B4: - ldrb r0, [r2, 0x9] - adds r0, 0x6 -_080488B8: - strb r0, [r1] - ldr r0, _08048900 - ldr r3, _08048904 - ldr r4, _08048908 - ldr r1, [r4] - adds r1, 0x41 - ldrb r2, [r1] - lsls r2, 1 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, 19 - movs r5, 0x80 - lsls r5, 14 - adds r1, r5 - asrs r1, 16 - adds r3, 0x1 - adds r2, r3 - ldrb r2, [r2] - lsls r2, 3 - movs r3, 0x2 - bl CreateSprite - ldr r1, [r4] - adds r1, 0x40 - strb r0, [r1] - ldr r0, _0804890C - ldr r1, _08048910 - adds r0, r1 - movs r1, 0xF - strb r1, [r0] - movs r0, 0x6 - movs r1, 0 - bl nullsub_5 - b _080489CA - .align 2, 0 -_08048900: .4byte gSpriteTemplate_820C134 -_08048904: .4byte gUnknown_0820C29C -_08048908: .4byte 0x03004824 -_0804890C: .4byte 0x03001770 -_08048910: .4byte 0x0000043c -_08048914: - movs r0, 0 - bl sub_8048B0C - b _08048998 -_0804891C: - movs r0, 0x1 - bl sub_8048B0C - ldr r2, _08048944 - ldr r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - bl sub_8048C70 - movs r0, 0x7 - movs r1, 0 - bl nullsub_5 - ldr r1, _08048948 - ldr r3, _0804894C - adds r1, r3 - b _0804899E - .align 2, 0 -_08048944: .4byte 0x03004824 -_08048948: .4byte 0x03001770 -_0804894C: .4byte 0x0000043c -_08048950: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08048968 - ldr r5, _0804896C - adds r1, r5 - b _0804899E - .align 2, 0 -_08048968: .4byte 0x03001770 -_0804896C: .4byte 0x0000043c -_08048970: - movs r1, 0x80 - lsls r1, 19 - movs r3, 0xFA - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r5, _08048984 - adds r1, r2, r5 - b _0804899E - .align 2, 0 -_08048984: .4byte 0x0000043c -_08048988: - ldr r0, _08048990 - adds r1, r2, r0 - b _0804899E - .align 2, 0 -_08048990: .4byte 0x0000043c -_08048994: - bl sub_804AF10 -_08048998: - ldr r1, _080489A8 - ldr r2, _080489AC - adds r1, r2 -_0804899E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080489CA - .align 2, 0 -_080489A8: .4byte 0x03001770 -_080489AC: .4byte 0x0000043c -_080489B0: - ldr r0, _080489E8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080489CA - ldr r0, _080489EC - bl SetMainCallback2 - ldr r0, _080489F0 - strb r4, [r0] -_080489CA: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080489E8: .4byte 0x0202f388 -_080489EC: .4byte sub_8048AB4 -_080489F0: .4byte 0x03000508 - thumb_func_end sub_80484F4 - - thumb_func_start sub_80489F4 -sub_80489F4: @ 80489F4 - push {lr} - ldr r0, _08048A10 - ldr r0, [r0] - adds r0, 0xC8 - bl sub_804A940 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_08048A10: .4byte 0x03004824 - thumb_func_end sub_80489F4 - - thumb_func_start sub_8048A14 -sub_8048A14: @ 8048A14 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08048A4C - ldr r1, [r4] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _08048A44 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0xA - strb r1, [r0] -_08048A44: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048A4C: .4byte 0x03004824 - thumb_func_end sub_8048A14 - - thumb_func_start sub_8048A50 -sub_8048A50: @ 8048A50 - push {r4,lr} - ldr r0, _08048A84 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08048A7E - ldr r2, _08048A88 - ldr r4, _08048A8C - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x41 - ldrb r1, [r1] - strb r1, [r2] - adds r0, 0x8A - ldrb r0, [r0] - strb r0, [r2, 0x1] - bl sub_800832C - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0xD - strb r1, [r0] -_08048A7E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048A84: .4byte 0x0202f388 -_08048A88: .4byte 0x020297d8 -_08048A8C: .4byte 0x03004824 - thumb_func_end sub_8048A50 - - thumb_func_start sub_8048A90 -sub_8048A90: @ 8048A90 - push {lr} - ldr r0, _08048AA8 - ldrb r1, [r0] - cmp r1, 0 - bne _08048AA4 - ldr r0, _08048AAC - str r1, [r0] - ldr r0, _08048AB0 - bl SetMainCallback2 -_08048AA4: - pop {r0} - bx r0 - .align 2, 0 -_08048AA8: .4byte 0x03002fa4 -_08048AAC: .4byte 0x03001770 -_08048AB0: .4byte sub_804B41C - thumb_func_end sub_8048A90 - - thumb_func_start sub_8048AB4 -sub_8048AB4: @ 8048AB4 - push {r4,lr} - bl sub_8049DE0 - bl sub_804AB30 - movs r0, 0 - bl sub_8049ED4 - movs r0, 0x1 - bl sub_8049ED4 - ldr r4, _08048B04 - ldr r3, _08048B08 - ldr r2, [r3] - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - adds r4, 0x4 - ldr r2, [r3] - ldrb r0, [r2, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r2, 0x1] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048B04: .4byte 0x04000018 -_08048B08: .4byte 0x03004824 - thumb_func_end sub_8048AB4 - - thumb_func_start sub_8048B0C -sub_8048B0C: @ 8048B0C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08048B1C - cmp r0, 0x1 - beq _08048BD0 - b _08048C3A -_08048B1C: - ldr r5, _08048BA0 - ldr r0, _08048BA4 - mov r12, r0 - ldr r1, _08048BA8 - ldr r4, _08048BAC - ldr r3, _08048BB0 - movs r2, 0x2F -_08048B2A: - ldrh r0, [r1] - strh r0, [r3] - ldrh r0, [r1] - strh r0, [r4] - adds r1, 0x2 - adds r4, 0x2 - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08048B2A - adds r3, r5, 0 - movs r4, 0xC0 - lsls r4, 19 - movs r5, 0x94 - lsls r5, 5 - ldr r1, _08048BB4 - ldr r6, _08048BB8 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_08048B54: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _08048B54 - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - ldr r5, _08048BBC - ldr r4, _08048BC0 - ldr r3, _08048BC4 -_08048B7A: - ldr r0, [r4] - lsls r1, r2, 1 - adds r0, 0xDA - adds r0, r1 - ldrh r1, [r3] - strh r1, [r0] - adds r3, 0x2 - adds r2, 0x1 - cmp r2, r5 - ble _08048B7A - ldr r1, _08048BC8 - ldr r0, _08048BB4 - mov r2, r12 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _08048BCC - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _08048C3A - .align 2, 0 -_08048BA0: .4byte gUnknown_08EA0348 -_08048BA4: .4byte gUnknown_0820AFEC -_08048BA8: .4byte gUnknown_08EA02C8 -_08048BAC: .4byte 0x0202eec8 -_08048BB0: .4byte 0x0202eac8 -_08048BB4: .4byte 0x040000d4 -_08048BB8: .4byte 0x80000800 -_08048BBC: .4byte 0x000003ff -_08048BC0: .4byte 0x03004824 -_08048BC4: .4byte gUnknown_08EA15C8 -_08048BC8: .4byte 0x06003000 -_08048BCC: .4byte 0x80000400 -_08048BD0: - ldr r1, _08048C40 - ldr r2, _08048C44 - ldr r0, _08048C48 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08048C4C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r0, 0 - bl sub_804A6DC - movs r0, 0x1 - bl sub_804A6DC - ldr r0, _08048C50 - ldr r0, [r0] - adds r0, 0xC8 - bl sub_804A938 - ldr r2, _08048C54 - ldrh r1, [r2] - ldr r0, _08048C58 - ands r0, r1 - strh r0, [r2] - ldr r1, _08048C5C - ldr r2, _08048C60 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08048C64 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08048C68 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08048C6C - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0xA - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] -_08048C3A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08048C40: .4byte gUnknown_0820B7EC -_08048C44: .4byte 0x06003800 -_08048C48: .4byte 0x040000d4 -_08048C4C: .4byte 0x80000400 -_08048C50: .4byte 0x03004824 -_08048C54: .4byte 0x04000008 -_08048C58: .4byte 0x0000fffc -_08048C5C: .4byte 0x0400000a -_08048C60: .4byte 0x00000501 -_08048C64: .4byte 0x00000602 -_08048C68: .4byte 0x00000703 -_08048C6C: .4byte 0x04000010 - thumb_func_end sub_8048B0C - - thumb_func_start sub_8048C70 -sub_8048C70: @ 8048C70 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r3, 0 - ldr r5, _08048CC0 - mov r8, r5 - ldr r0, _08048CC4 - mov r12, r0 - movs r1, 0x5 - negs r1, r1 - mov r9, r1 - movs r4, 0x6 - movs r7, 0x1 - movs r6, 0 -_08048C8E: - mov r1, r8 - ldr r0, [r1] - adds r1, r0, 0 - adds r1, 0x42 - ldrb r1, [r1] - cmp r3, r1 - bge _08048CC8 - adds r0, 0x34 - adds r0, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r9 - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0x44 - adds r0, r3 - strb r7, [r0] - b _08048CCE - .align 2, 0 -_08048CC0: .4byte 0x03004824 -_08048CC4: .4byte 0x02020004 -_08048CC8: - adds r0, 0x44 - adds r0, r3 - strb r6, [r0] -_08048CCE: - mov r1, r8 - ldr r0, [r1] - adds r1, r0, 0 - adds r1, 0x43 - ldrb r1, [r1] - cmp r3, r1 - bge _08048CFE - adds r0, 0x3A - adds r0, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r9 - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0x44 - adds r0, r4 - strb r7, [r0] - b _08048D04 -_08048CFE: - adds r0, 0x44 - adds r0, r4 - strb r6, [r0] -_08048D04: - adds r4, 0x1 - adds r3, 0x1 - cmp r3, 0x5 - ble _08048C8E - ldr r0, [r5] - adds r0, 0x50 - movs r1, 0x1 - strb r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8048C70 - - thumb_func_start nullsub_5 -nullsub_5: @ 8048D20 - bx lr - thumb_func_end nullsub_5 - - thumb_func_start sub_8048D24 -sub_8048D24: @ 8048D24 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r3, 0 - cmp r3, r2 - bcs _08048D3E -_08048D30: - adds r0, r5, r3 - adds r1, r4, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, r2 - bcc _08048D30 -_08048D3E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8048D24 - - thumb_func_start sub_8048D44 -sub_8048D44: @ 8048D44 - push {r4-r7,lr} - sub sp, 0xC - bl GetMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _08048D90 - ldr r0, [r6] - adds r0, 0x75 - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0x64 - bl __udivsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x64 - bl __umodsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl SetLinkDebugValues - ldr r0, [r6] - adds r0, 0x75 - ldrb r0, [r0] - cmp r0, 0x10 - bls _08048D86 - b _0804907C -_08048D86: - lsls r0, 2 - ldr r1, _08048D94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048D90: .4byte 0x03004824 -_08048D94: .4byte _08048D98 - .align 2, 0 -_08048D98: - .4byte _08048DDC - .4byte _08048DF8 - .4byte _08048E28 - .4byte _08048E3C - .4byte _08048E74 - .4byte _08048E90 - .4byte _08048EA4 - .4byte _08048EDC - .4byte _08048EF8 - .4byte _08048F0C - .4byte _08048F44 - .4byte _08048F60 - .4byte _08048F74 - .4byte _08048FAC - .4byte _08048FC8 - .4byte _08048FDC - .4byte _08049018 -_08048DDC: - ldr r0, _08048DEC - ldr r1, _08048DF0 - movs r2, 0xC8 - bl sub_8048D24 - ldr r0, _08048DF4 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048DEC: .4byte 0x03002a70 -_08048DF0: .4byte 0x03004360 -_08048DF4: .4byte 0x03004824 -_08048DF8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _08048E04 - b _0804907C -_08048E04: - bl GetBlockRecievedStatus - lsls r0, 24 - cmp r0, 0 - bne _08048E18 - ldr r0, _08048E14 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048E14: .4byte 0x03004824 -_08048E18: - bl ResetBlockReceivedFlags - ldr r0, _08048E24 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048E24: .4byte 0x03004824 -_08048E28: - cmp r7, 0 - bne _08048E32 - movs r0, 0x1 - bl sub_8007E9C -_08048E32: - ldr r0, _08048E38 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048E38: .4byte 0x03004824 -_08048E3C: - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08048E4A - b _0804907C -_08048E4A: - ldr r0, _08048E68 - movs r2, 0x1 - adds r1, r7, 0 - eors r1, r2 - lsls r1, 8 - ldr r2, _08048E6C - adds r1, r2 - movs r2, 0xC8 - bl sub_8048D24 - bl ResetBlockReceivedFlags - ldr r0, _08048E70 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048E68: .4byte 0x030045c0 -_08048E6C: .4byte 0x03002b80 -_08048E70: .4byte 0x03004824 -_08048E74: - ldr r0, _08048E84 - ldr r1, _08048E88 - movs r2, 0xC8 - bl sub_8048D24 - ldr r0, _08048E8C - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048E84: .4byte 0x03002a70 -_08048E88: .4byte 0x03004428 -_08048E8C: .4byte 0x03004824 -_08048E90: - cmp r7, 0 - bne _08048E9A - movs r0, 0x1 - bl sub_8007E9C -_08048E9A: - ldr r0, _08048EA0 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048EA0: .4byte 0x03004824 -_08048EA4: - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08048EB2 - b _0804907C -_08048EB2: - ldr r0, _08048ED0 - movs r2, 0x1 - adds r1, r7, 0 - eors r1, r2 - lsls r1, 8 - ldr r2, _08048ED4 - adds r1, r2 - movs r2, 0xC8 - bl sub_8048D24 - bl ResetBlockReceivedFlags - ldr r0, _08048ED8 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048ED0: .4byte 0x03004688 -_08048ED4: .4byte 0x03002b80 -_08048ED8: .4byte 0x03004824 -_08048EDC: - ldr r0, _08048EEC - ldr r1, _08048EF0 - movs r2, 0xC8 - bl sub_8048D24 - ldr r0, _08048EF4 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048EEC: .4byte 0x03002a70 -_08048EF0: .4byte 0x030044f0 -_08048EF4: .4byte 0x03004824 -_08048EF8: - cmp r7, 0 - bne _08048F02 - movs r0, 0x1 - bl sub_8007E9C -_08048F02: - ldr r0, _08048F08 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048F08: .4byte 0x03004824 -_08048F0C: - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08048F1A - b _0804907C -_08048F1A: - ldr r0, _08048F38 - movs r2, 0x1 - adds r1, r7, 0 - eors r1, r2 - lsls r1, 8 - ldr r2, _08048F3C - adds r1, r2 - movs r2, 0xC8 - bl sub_8048D24 - bl ResetBlockReceivedFlags - ldr r0, _08048F40 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048F38: .4byte 0x03004750 -_08048F3C: .4byte 0x03002b80 -_08048F40: .4byte 0x03004824 -_08048F44: - ldr r0, _08048F54 - ldr r1, _08048F58 - movs r2, 0xDC - bl sub_8048D24 - ldr r0, _08048F5C - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048F54: .4byte 0x03002a70 -_08048F58: .4byte 0x02028280 -_08048F5C: .4byte 0x03004824 -_08048F60: - cmp r7, 0 - bne _08048F6A - movs r0, 0x3 - bl sub_8007E9C -_08048F6A: - ldr r0, _08048F70 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048F70: .4byte 0x03004824 -_08048F74: - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08048F82 - b _0804907C -_08048F82: - ldr r0, _08048FA0 - movs r2, 0x1 - adds r1, r7, 0 - eors r1, r2 - lsls r1, 8 - ldr r2, _08048FA4 - adds r1, r2 - movs r2, 0xD8 - bl sub_8048D24 - bl ResetBlockReceivedFlags - ldr r0, _08048FA8 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048FA0: .4byte 0x02029700 -_08048FA4: .4byte 0x03002b80 -_08048FA8: .4byte 0x03004824 -_08048FAC: - ldr r0, _08048FBC - ldr r1, _08048FC0 - movs r2, 0xB - bl sub_8048D24 - ldr r0, _08048FC4 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048FBC: .4byte 0x03002a70 -_08048FC0: .4byte 0x02028844 -_08048FC4: .4byte 0x03004824 -_08048FC8: - cmp r7, 0 - bne _08048FD2 - movs r0, 0x4 - bl sub_8007E9C -_08048FD2: - ldr r0, _08048FD8 - ldr r1, [r0] - b _08049006 - .align 2, 0 -_08048FD8: .4byte 0x03004824 -_08048FDC: - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0804907C - ldr r4, _08049010 - ldr r0, [r4] - adds r0, 0xB5 - movs r2, 0x1 - adds r1, r7, 0 - eors r1, r2 - lsls r1, 8 - ldr r2, _08049014 - adds r1, r2 - movs r2, 0xB - bl sub_8048D24 - bl ResetBlockReceivedFlags - ldr r1, [r4] -_08049006: - adds r1, 0x75 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804907C - .align 2, 0 -_08049010: .4byte 0x03004824 -_08049014: .4byte 0x03002b80 -_08049018: - ldr r4, _0804906C - ldr r6, _08049070 - movs r5, 0x5 -_0804901E: - adds r0, r4, 0 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _0804905E - cmp r0, r6 - bne _0804905E - adds r0, r4, 0 - movs r1, 0x3 - bl PokemonGetField - cmp r0, 0x1 - beq _0804905E - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - mov r0, sp - ldr r1, _08049074 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _0804905E - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, _08049078 - bl pokemon_setattr -_0804905E: - adds r4, 0x64 - subs r5, 0x1 - cmp r5, 0 - bge _0804901E - movs r0, 0x1 - b _0804907E - .align 2, 0 -_0804906C: .4byte 0x030045c0 -_08049070: .4byte 0x0000012f -_08049074: .4byte gUnknown_0820C3B0 -_08049078: .4byte gSpeciesNames + 0xD05 -_0804907C: - movs r0, 0 -_0804907E: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8048D44 - - thumb_func_start sub_8049088 -sub_8049088: @ 8049088 - push {lr} - sub sp, 0x1C - ldr r1, _080490B0 - mov r0, sp - bl StringCopy - ldr r0, _080490B4 - ldr r0, [r0] - adds r0, 0x7E - ldrh r1, [r0] - lsls r1, 5 - ldr r0, _080490B8 - adds r1, r0 - mov r0, sp - movs r2, 0x14 - bl sub_804ACD8 - add sp, 0x1C - pop {r0} - bx r0 - .align 2, 0 -_080490B0: .4byte gUnknown_0842C7B6 -_080490B4: .4byte 0x03004824 -_080490B8: .4byte 0x06010000 - thumb_func_end sub_8049088 - - thumb_func_start sub_80490BC -sub_80490BC: @ 80490BC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - movs r3, 0x1 - adds r0, r4, 0 - ands r0, r3 - cmp r0, 0 - beq _08049148 - ldr r1, _080490EC - lsls r0, r2, 8 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _080490F0 - cmp r1, r0 - beq _08049128 - cmp r1, r0 - bgt _080490F8 - ldr r0, _080490F4 - cmp r1, r0 - beq _08049118 - b _08049142 - .align 2, 0 -_080490EC: .4byte 0x03002b80 -_080490F0: .4byte 0x0000bbbb -_080490F4: .4byte 0x0000aabb -_080490F8: - ldr r0, _0804910C - cmp r1, r0 - beq _08049138 - ldr r0, _08049110 - cmp r1, r0 - bne _08049142 - ldr r0, _08049114 - ldr r0, [r0] - adds r0, 0x84 - b _0804913E - .align 2, 0 -_0804910C: .4byte 0x0000bbcc -_08049110: .4byte 0x0000eeaa -_08049114: .4byte 0x03004824 -_08049118: - ldr r0, _08049124 - ldr r0, [r0] - adds r0, 0x84 - strb r3, [r0] - b _08049142 - .align 2, 0 -_08049124: .4byte 0x03004824 -_08049128: - ldr r0, _08049134 - ldr r0, [r0] - adds r0, 0x86 - strb r3, [r0] - b _08049142 - .align 2, 0 -_08049134: .4byte 0x03004824 -_08049138: - ldr r0, _08049170 - ldr r0, [r0] - adds r0, 0x86 -_0804913E: - movs r1, 0x2 - strb r1, [r0] -_08049142: - movs r0, 0 - bl ResetBlockReceivedFlag -_08049148: - movs r2, 0x2 - adds r0, r4, 0 - ands r0, r2 - cmp r0, 0 - beq _080491DA - ldr r3, _08049174 - movs r1, 0x80 - lsls r1, 1 - adds r0, r3, r1 - ldrh r1, [r0] - ldr r0, _08049178 - cmp r1, r0 - beq _080491BC - cmp r1, r0 - bgt _08049180 - ldr r0, _0804917C - cmp r1, r0 - beq _080491A0 - b _080491D4 - .align 2, 0 -_08049170: .4byte 0x03004824 -_08049174: .4byte 0x03002b80 -_08049178: .4byte 0x0000bbbb -_0804917C: .4byte 0x0000aabb -_08049180: - ldr r0, _08049194 - cmp r1, r0 - beq _080491CC - ldr r0, _08049198 - cmp r1, r0 - bne _080491D4 - ldr r0, _0804919C - ldr r0, [r0] - adds r0, 0x85 - b _080491D2 - .align 2, 0 -_08049194: .4byte 0x0000bbcc -_08049198: .4byte 0x0000eeaa -_0804919C: .4byte 0x03004824 -_080491A0: - ldr r2, _080491B8 - ldr r1, [r2] - movs r4, 0x81 - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - adds r0, 0x6 - adds r1, 0x8A - strb r0, [r1] - ldr r0, [r2] - adds r0, 0x85 - b _080491C2 - .align 2, 0 -_080491B8: .4byte 0x03004824 -_080491BC: - ldr r0, _080491C8 - ldr r0, [r0] - adds r0, 0x87 -_080491C2: - movs r1, 0x1 - strb r1, [r0] - b _080491D4 - .align 2, 0 -_080491C8: .4byte 0x03004824 -_080491CC: - ldr r0, _080491E0 - ldr r0, [r0] - adds r0, 0x87 -_080491D2: - strb r2, [r0] -_080491D4: - movs r0, 0x1 - bl ResetBlockReceivedFlag -_080491DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080491E0: .4byte 0x03004824 - thumb_func_end sub_80490BC - - thumb_func_start sub_80491E4 -sub_80491E4: @ 80491E4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r1, 24 - lsrs r5, r1, 24 - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _080492BE - ldr r2, _08049210 - ldrh r1, [r2] - ldr r0, _08049214 - cmp r1, r0 - beq _080492A8 - cmp r1, r0 - bgt _08049220 - ldr r0, _08049218 - cmp r1, r0 - beq _08049288 - ldr r0, _0804921C - cmp r1, r0 - beq _0804925C - b _080492B8 - .align 2, 0 -_08049210: .4byte 0x03002b80 -_08049214: .4byte 0x0000ddee -_08049218: .4byte 0x0000ccdd -_0804921C: .4byte 0x0000dddd -_08049220: - ldr r0, _08049230 - cmp r1, r0 - beq _08049234 - adds r0, 0x11 - cmp r1, r0 - beq _08049258 - b _080492B8 - .align 2, 0 -_08049230: .4byte 0x0000eebb -_08049234: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x4 - bl sub_804AA0C - ldr r0, _08049254 - ldr r0, [r0] - adds r0, 0x7B - movs r1, 0xB - b _080492B6 - .align 2, 0 -_08049254: .4byte 0x03004824 -_08049258: - movs r0, 0x5 - b _080492AA -_0804925C: - ldr r4, _08049284 - ldr r1, [r4] - ldrb r0, [r2, 0x2] - adds r0, 0x6 - adds r1, 0x8A - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x41 - ldrb r0, [r0] - bl sub_8049E9C - ldr r0, [r4] - adds r0, 0x8A - ldrb r0, [r0] - bl sub_8049E9C - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x7 - b _080492B6 - .align 2, 0 -_08049284: .4byte 0x03004824 -_08049288: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080492A4 - ldr r0, [r0] - adds r0, 0x7B - movs r1, 0xA - b _080492B6 - .align 2, 0 -_080492A4: .4byte 0x03004824 -_080492A8: - movs r0, 0x1 -_080492AA: - bl sub_804AA0C - ldr r0, _080492D4 - ldr r0, [r0] - adds r0, 0x7B - movs r1, 0x8 -_080492B6: - strb r1, [r0] -_080492B8: - movs r0, 0 - bl ResetBlockReceivedFlag -_080492BE: - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _080492CC - movs r0, 0x1 - bl ResetBlockReceivedFlag -_080492CC: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080492D4: .4byte 0x03004824 - thumb_func_end sub_80491E4 - - thumb_func_start sub_80492D8 -sub_80492D8: @ 80492D8 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _08049334 - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0x84 - ldrb r0, [r1] - cmp r0, 0 - bne _080492EC - b _08049420 -_080492EC: - adds r0, r2, 0 - adds r0, 0x85 - ldrb r0, [r0] - cmp r0, 0 - bne _080492F8 - b _08049420 -_080492F8: - ldrh r1, [r1] - ldr r0, _08049338 - cmp r1, r0 - bne _08049340 - adds r1, r2, 0 - adds r1, 0x7B - movs r0, 0x6 - strb r0, [r1] - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0x8C - movs r4, 0 - ldr r0, _0804933C - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x41 - ldrb r1, [r0] - adds r0, 0x4D - strh r1, [r0] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r6] - adds r2, r0, 0 - adds r2, 0x85 - strb r4, [r2] - adds r0, 0x84 - strb r4, [r0] - b _08049420 - .align 2, 0 -_08049334: .4byte 0x03004824 -_08049338: .4byte 0x00000101 -_0804933C: .4byte 0x0000dddd -_08049340: - ldr r0, _08049388 - cmp r1, r0 - bne _08049390 - movs r0, 0x1 - bl sub_804AA0C - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0x8C - movs r4, 0 - movs r3, 0 - ldr r0, _0804938C - strh r0, [r2] - adds r1, 0x8E - strh r3, [r1] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x87 - strb r4, [r1] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x85 - strb r4, [r1] - adds r0, 0x84 - strb r4, [r0] - ldr r0, [r6] - adds r0, 0x7B - movs r1, 0x8 - b _0804941E - .align 2, 0 -_08049388: .4byte 0x00000201 -_0804938C: .4byte 0x0000eecc -_08049390: - movs r0, 0x81 - lsls r0, 1 - cmp r1, r0 - bne _080493DC - movs r0, 0x5 - bl sub_804AA0C - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0x8C - movs r4, 0 - movs r3, 0 - ldr r0, _080493D8 - strh r0, [r2] - adds r1, 0x8E - strh r3, [r1] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x87 - strb r4, [r1] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x85 - strb r4, [r1] - adds r0, 0x84 - strb r4, [r0] - ldr r0, [r6] - adds r0, 0x7B - movs r1, 0x8 - b _0804941E - .align 2, 0 -_080493D8: .4byte 0x0000ddee -_080493DC: - ldr r0, _080494C0 - cmp r1, r0 - bne _08049420 - adds r1, r2, 0 - adds r1, 0x8C - movs r5, 0 - movs r4, 0 - ldr r0, _080494C4 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x8E - strh r4, [r0] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x85 - strb r5, [r1] - adds r0, 0x84 - strb r5, [r0] - ldr r0, [r6] - adds r0, 0x7B - movs r1, 0xB -_0804941E: - strb r1, [r0] -_08049420: - ldr r5, _080494C8 - ldr r3, [r5] - adds r1, r3, 0 - adds r1, 0x86 - ldrb r0, [r1] - cmp r0, 0 - beq _080494B8 - adds r0, r3, 0 - adds r0, 0x87 - ldrb r0, [r0] - cmp r0, 0 - beq _080494B8 - ldrh r1, [r1] - ldr r0, _080494CC - cmp r1, r0 - bne _0804946E - adds r1, r3, 0 - adds r1, 0x8C - movs r4, 0 - movs r2, 0 - ldr r0, _080494D0 - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0x8E - strh r2, [r0] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r5] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x87 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7B - movs r1, 0x9 - strb r1, [r0] -_0804946E: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x86 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08049484 - adds r0, r1, 0 - adds r0, 0x87 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080494B8 -_08049484: - movs r0, 0x1 - bl sub_804AA0C - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x8C - movs r4, 0 - movs r3, 0 - ldr r0, _080494D4 - strh r0, [r2] - adds r1, 0x8E - strh r3, [r1] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r5] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x87 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7B - movs r1, 0x8 - strb r1, [r0] -_080494B8: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080494C0: .4byte 0x00000202 -_080494C4: .4byte 0x0000eebb -_080494C8: .4byte 0x03004824 -_080494CC: .4byte 0x00000101 -_080494D0: .4byte 0x0000ccdd -_080494D4: .4byte 0x0000ddee - thumb_func_end sub_80492D8 - - thumb_func_start sub_80494D8 -sub_80494D8: @ 80494D8 - push {r4,lr} - bl GetMultiplayerId - lsls r0, 24 - lsrs r4, r0, 24 - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08049504 - cmp r4, 0 - bne _080494FA - movs r0, 0 - bl sub_80490BC - b _08049500 -_080494FA: - adds r0, r4, 0 - bl sub_80491E4 -_08049500: - bl ResetBlockReceivedFlags -_08049504: - cmp r4, 0 - bne _0804950C - bl sub_80492D8 -_0804950C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80494D8 - - thumb_func_start sub_8049514 -sub_8049514: @ 8049514 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r6, 0 - movs r5, 0 - ldr r2, _08049548 - ldr r3, [r2] - ldr r4, _0804954C - lsls r2, r1, 1 - adds r2, r1 - lsls r2, 1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r3, 0x44 - adds r2, r1 - adds r2, r4 -_0804953A: - ldrb r1, [r2] - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08049550 - adds r6, r1, 0 - b _08049558 - .align 2, 0 -_08049548: .4byte 0x03004824 -_0804954C: .4byte gUnknown_0820C164 -_08049550: - adds r2, 0x1 - adds r5, 0x1 - cmp r5, 0x5 - ble _0804953A -_08049558: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8049514 - - thumb_func_start sub_8049560 -sub_8049560: @ 8049560 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r7] - bl sub_8049514 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xC - bne _080495B8 - ldr r5, _080495B0 - ldr r0, [r5] - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080495B4 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAnim - ldr r2, [r5] - adds r2, 0x40 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xE0 - strh r1, [r0, 0x20] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xA0 - strh r1, [r0, 0x22] - b _08049600 - .align 2, 0 -_080495B0: .4byte 0x03004824 -_080495B4: .4byte 0x02020004 -_080495B8: - ldr r4, _08049614 - ldr r0, [r4] - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _08049618 - adds r0, r5 - movs r1, 0 - bl StartSpriteAnim - ldr r4, [r4] - adds r4, 0x40 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldr r2, _0804961C - lsls r3, r6, 1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r0, 0x20 - strh r0, [r1, 0x20] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r2, 0x1 - adds r3, r2 - ldrb r0, [r3] - lsls r0, 3 - strh r0, [r1, 0x22] -_08049600: - ldrb r0, [r7] - cmp r0, r6 - beq _0804960C - movs r0, 0x5 - bl audio_play -_0804960C: - strb r6, [r7] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08049614: .4byte 0x03004824 -_08049618: .4byte 0x02020004 -_0804961C: .4byte gUnknown_0820C29C - thumb_func_end sub_8049560 - - thumb_func_start sub_8049620 -sub_8049620: @ 8049620 - push {r4,lr} - movs r0, 0 - bl sub_804AA0C - ldr r4, _08049668 - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x5 - strb r1, [r0] - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08049670 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x8C - ldr r0, _0804966C - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x41 - ldrb r1, [r0] - adds r0, 0x4D - strh r1, [r0] - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x8C - movs r2, 0x14 - bl SendBlock - b _08049678 - .align 2, 0 -_08049668: .4byte 0x03004824 -_0804966C: .4byte 0x0000aabb -_08049670: - ldr r0, [r4] - adds r0, 0x84 - movs r1, 0x1 - strb r1, [r0] -_08049678: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8049620 - - thumb_func_start sub_8049680 -sub_8049680: @ 8049680 - push {r4,lr} - sub sp, 0x8 - ldr r0, _080496A0 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080496A8 - ldr r0, _080496A4 - ldr r0, [r0] - adds r0, 0x41 - movs r1, 0 - bl sub_8049560 - b _080496F4 - .align 2, 0 -_080496A0: .4byte 0x03001770 -_080496A4: .4byte 0x03004824 -_080496A8: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080496C4 - ldr r0, _080496C0 - ldr r0, [r0] - adds r0, 0x41 - movs r1, 0x1 - bl sub_8049560 - b _080496F4 - .align 2, 0 -_080496C0: .4byte 0x03004824 -_080496C4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080496E0 - ldr r0, _080496DC - ldr r0, [r0] - adds r0, 0x41 - movs r1, 0x2 - bl sub_8049560 - b _080496F4 - .align 2, 0 -_080496DC: .4byte 0x03004824 -_080496E0: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080496F4 - ldr r0, _08049750 - ldr r0, [r0] - adds r0, 0x41 - movs r1, 0x3 - bl sub_8049560 -_080496F4: - ldr r0, _08049754 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080497B6 - movs r0, 0x5 - bl audio_play - ldr r4, _08049750 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x41 - ldrb r1, [r1] - cmp r1, 0x5 - bhi _0804975C - adds r0, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0x12 - movs r2, 0xE - movs r3, 0x1C - bl AddTextPrinterParametrized - ldr r3, _08049758 - movs r0, 0x13 - movs r1, 0xF - movs r2, 0x2 - bl PrintStringArray - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x13 - movs r2, 0xF - movs r3, 0x2 - bl InitMenu - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x1 - strb r1, [r0] - b _080497B6 - .align 2, 0 -_08049750: .4byte 0x03004824 -_08049754: .4byte 0x03001770 -_08049758: .4byte gUnknown_0820C320 -_0804975C: - cmp r1, 0xB - bhi _0804977A - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x2 - strb r1, [r0] - b _080497B6 -_0804977A: - cmp r1, 0xC - bne _080497B6 - adds r0, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0x18 - movs r2, 0xE - movs r3, 0x1D - bl AddTextPrinterParametrized - movs r0, 0x18 - movs r1, 0xE - movs r2, 0x4 - bl sub_807292C - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x4 - strb r1, [r0] - ldr r0, _080497F4 - ldr r0, [r0, 0x10] - ldr r1, [r4] - adds r1, 0x7E - ldrh r1, [r1] - lsls r1, 5 - ldr r2, _080497F8 - adds r1, r2 - movs r2, 0x14 - bl sub_804ACD8 -_080497B6: - ldr r0, _080497FC - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080497EC - movs r2, 0 - ldr r3, _08049800 -_080497C8: - ldr r0, [r3] - lsls r1, r2, 1 - adds r0, 0x8C - adds r0, r1 - strh r2, [r0] - adds r2, 0x1 - cmp r2, 0x9 - ble _080497C8 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08049800 - ldr r1, [r1] - adds r1, 0x8C - movs r2, 0x14 - bl SendBlock -_080497EC: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080497F4: .4byte gUnknown_0820C14C -_080497F8: .4byte 0x06010000 -_080497FC: .4byte 0x03001770 -_08049800: .4byte 0x03004824 - thumb_func_end sub_8049680 - - thumb_func_start sub_8049804 -sub_8049804: @ 8049804 - push {lr} - bl sub_8072DEC - bl sub_804A80C - ldr r3, _08049850 - ldr r0, [r3] - adds r0, 0x7B - movs r1, 0 - strb r1, [r0] - ldr r2, _08049854 - ldr r0, [r3] - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, _08049858 - ldr r0, [r0, 0x4] - ldr r1, [r3] - adds r1, 0x7E - ldrh r1, [r1] - lsls r1, 5 - ldr r2, _0804985C - adds r1, r2 - movs r2, 0x14 - bl sub_804ACD8 - pop {r0} - bx r0 - .align 2, 0 -_08049850: .4byte 0x03004824 -_08049854: .4byte 0x02020004 -_08049858: .4byte gUnknown_0820C14C -_0804985C: .4byte 0x06010000 - thumb_func_end sub_8049804 - - thumb_func_start sub_8049860 -sub_8049860: @ 8049860 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0804987C - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08049880 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _08049890 - .align 2, 0 -_0804987C: .4byte 0x03001770 -_08049880: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804989C - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_08049890: - bl MoveMenuCursor - ldr r1, _080498D8 - ldr r1, [r1] - adds r1, 0x7C - strb r0, [r1] -_0804989C: - ldr r0, _080498DC - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08049938 - movs r0, 0x5 - bl audio_play - bl GetMenuCursorPos - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080498E0 - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080498D8 - ldr r0, [r0] - adds r0, 0x7B - movs r1, 0x2 - strb r1, [r0] - b _0804994A - .align 2, 0 -_080498D8: .4byte 0x03004824 -_080498DC: .4byte 0x03001770 -_080498E0: - ldr r4, _08049910 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x51 - adds r1, r2, 0 - adds r1, 0x42 - ldrb r1, [r1] - adds r2, 0x41 - ldrb r2, [r2] - bl sub_80499F0 - lsls r0, 24 - cmp r0, 0 - bne _08049914 - movs r0, 0x3 - movs r1, 0x2 - bl sub_804AADC - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x8 - strb r1, [r0] - b _0804994A - .align 2, 0 -_08049910: .4byte 0x03004824 -_08049914: - bl sub_8049620 - ldr r2, _08049934 - ldr r0, [r4] - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0804994A - .align 2, 0 -_08049934: .4byte 0x02020004 -_08049938: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804994A - movs r0, 0x5 - bl audio_play - bl sub_8049804 -_0804994A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8049860 - - thumb_func_start sub_8049954 -sub_8049954: @ 8049954 - push {lr} - ldr r0, _08049978 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0804996A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08049974 -_0804996A: - movs r0, 0x5 - bl audio_play - bl sub_8049804 -_08049974: - pop {r0} - bx r0 - .align 2, 0 -_08049978: .4byte 0x03001770 - thumb_func_end sub_8049954 - - thumb_func_start sub_804997C -sub_804997C: @ 804997C - push {r4,lr} - sub sp, 0x4 - ldr r0, _080499B4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080499E0 - ldr r0, _080499B8 - ldr r2, [r0] - adds r3, r2, 0 - adds r3, 0x41 - ldrb r1, [r3] - cmp r1, 0x5 - bhi _080499C4 - ldr r0, _080499BC - ldrb r1, [r3] - adds r2, 0x42 - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080499C0 - movs r4, 0x4 - str r4, [sp] - bl sub_809D8BC - b _080499E0 - .align 2, 0 -_080499B4: .4byte 0x0202f388 -_080499B8: .4byte 0x03004824 -_080499BC: .4byte 0x03004360 -_080499C0: .4byte sub_80484F4 -_080499C4: - ldr r0, _080499E8 - subs r1, 0x6 - lsls r1, 24 - lsrs r1, 24 - adds r2, 0x43 - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080499EC - movs r4, 0x4 - str r4, [sp] - bl sub_809D8BC -_080499E0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080499E8: .4byte 0x030045c0 -_080499EC: .4byte sub_80484F4 - thumb_func_end sub_804997C - - thumb_func_start sub_80499F0 -sub_80499F0: @ 80499F0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - movs r3, 0 - cmp r1, r4 - bge _08049A18 -_08049A04: - cmp r2, r3 - beq _08049A12 - adds r0, r5, r3 - ldrb r0, [r0] - adds r0, r1, r0 - lsls r0, 24 - lsrs r1, r0, 24 -_08049A12: - adds r3, 0x1 - cmp r3, r4 - blt _08049A04 -_08049A18: - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80499F0 - - thumb_func_start sub_8049A20 -sub_8049A20: @ 8049A20 - push {r4,r5,lr} - sub sp, 0xC - movs r2, 0 - ldr r0, _08049A80 - ldr r1, [r0] - adds r3, r1, 0 - adds r3, 0x42 - adds r5, r0, 0 - ldrb r0, [r3] - cmp r2, r0 - bge _08049A4C - adds r4, r1, 0 - adds r4, 0x51 -_08049A3A: - mov r1, sp - adds r0, r1, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - ldrb r0, [r3] - cmp r2, r0 - blt _08049A3A -_08049A4C: - adds r4, r5, 0 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x42 - ldrb r1, [r1] - adds r0, 0x41 - ldrb r2, [r0] - mov r0, sp - bl sub_80499F0 - lsls r0, 24 - cmp r0, 0 - bne _08049A88 - movs r0, 0x3 - movs r1, 0x2 - bl sub_804AADC - ldr r0, [r4] - adds r0, 0x8C - ldr r1, _08049A84 - strh r1, [r0] - movs r0, 0xB4 - movs r1, 0 - bl sub_804AADC - b _08049AB4 - .align 2, 0 -_08049A80: .4byte 0x03004824 -_08049A84: .4byte 0x0000bbcc -_08049A88: - movs r0, 0x3 - movs r1, 0x1 - bl sub_804AADC - ldr r0, [r5] - adds r0, 0x8C - ldr r1, _08049ABC - strh r1, [r0] - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _08049AB4 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r5] - adds r1, 0x8C - movs r2, 0x14 - bl SendBlock -_08049AB4: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08049ABC: .4byte 0x0000bbbb - thumb_func_end sub_8049A20 - - thumb_func_start sub_8049AC0 -sub_8049AC0: @ 8049AC0 - push {r4,lr} - ldr r0, _08049ADC - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08049AE0 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _08049AF0 - .align 2, 0 -_08049ADC: .4byte 0x03001770 -_08049AE0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08049AFC - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_08049AF0: - bl MoveMenuCursor - ldr r1, _08049B20 - ldr r1, [r1] - adds r1, 0x7C - strb r0, [r1] -_08049AFC: - ldr r0, _08049B24 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08049B64 - movs r0, 0x5 - bl audio_play - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - bne _08049B28 - bl sub_8049A20 - b _08049B56 - .align 2, 0 -_08049B20: .4byte 0x03004824 -_08049B24: .4byte 0x03001770 -_08049B28: - movs r0, 0x3 - movs r1, 0x1 - bl sub_804AADC - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _08049B56 - ldr r4, _08049B5C - ldr r0, [r4] - adds r0, 0x8C - ldr r1, _08049B60 - strh r1, [r0] - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x8C - movs r2, 0x14 - bl SendBlock -_08049B56: - ldr r0, _08049B5C - ldr r0, [r0] - b _08049BAA - .align 2, 0 -_08049B5C: .4byte 0x03004824 -_08049B60: .4byte 0x0000bbcc -_08049B64: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08049BB0 - movs r0, 0x3 - movs r1, 0x1 - bl sub_804AADC - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - bne _08049B8C - movs r0, 0x1 - bl MoveMenuCursor - ldr r1, _08049BB8 - ldr r1, [r1] - adds r1, 0x7C - strb r0, [r1] -_08049B8C: - ldr r4, _08049BB8 - ldr r0, [r4] - adds r0, 0x8C - ldr r1, _08049BBC - strh r1, [r0] - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x8C - movs r2, 0x14 - bl SendBlock - ldr r0, [r4] -_08049BAA: - adds r0, 0x7B - movs r1, 0x64 - strb r1, [r0] -_08049BB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08049BB8: .4byte 0x03004824 -_08049BBC: .4byte 0x0000bbcc - thumb_func_end sub_8049AC0 - - thumb_func_start sub_8049BC0 -sub_8049BC0: @ 8049BC0 - push {r4,r5,lr} - ldr r0, _08049BDC - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08049BE0 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _08049BF0 - .align 2, 0 -_08049BDC: .4byte 0x03001770 -_08049BE0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08049BFC - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_08049BF0: - bl MoveMenuCursor - ldr r1, _08049C5C - ldr r1, [r1] - adds r1, 0x7C - strb r0, [r1] -_08049BFC: - ldr r0, _08049C60 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08049C72 - movs r0, 0x5 - bl audio_play - bl GetMenuCursorPos - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08049C6C - movs r0, 0x4 - bl sub_804AA0C - ldr r4, _08049C5C - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x8C - ldr r1, _08049C64 - strh r1, [r2] - adds r0, 0x8E - strh r5, [r0] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r2, _08049C68 - ldr r0, [r4] - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x64 - strb r1, [r0] - b _08049C84 - .align 2, 0 -_08049C5C: .4byte 0x03004824 -_08049C60: .4byte 0x03001770 -_08049C64: .4byte 0x0000eeaa -_08049C68: .4byte 0x02020004 -_08049C6C: - bl sub_8049804 - b _08049C84 -_08049C72: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08049C84 - movs r0, 0x5 - bl audio_play - bl sub_8049804 -_08049C84: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8049BC0 - - thumb_func_start sub_8049C8C -sub_8049C8C: @ 8049C8C - push {r4,lr} - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _08049CAE - ldr r4, _08049CC0 - ldr r0, [r4] - adds r0, 0x41 - ldrb r0, [r0] - bl sub_8049E9C - ldr r0, [r4] - adds r0, 0x8A - ldrb r0, [r0] - bl sub_8049E9C -_08049CAE: - ldr r0, _08049CC0 - ldr r0, [r0] - adds r0, 0x7B - movs r1, 0x7 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08049CC0: .4byte 0x03004824 - thumb_func_end sub_8049C8C - - thumb_func_start sub_8049CC4 -sub_8049CC4: @ 8049CC4 - push {r4,lr} - ldr r4, _08049CE8 - ldr r0, [r4] - adds r0, 0x80 - ldrh r1, [r0] - ldr r0, _08049CEC - cmp r1, r0 - bne _08049CE0 - bl sub_8049088 - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0xE - strb r1, [r0] -_08049CE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08049CE8: .4byte 0x03004824 -_08049CEC: .4byte 0x00000505 - thumb_func_end sub_8049CC4 - - thumb_func_start DisplayMessageAndContinueTask -DisplayMessageAndContinueTask: @ 8049CF0 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08049D40 - ldr r1, [r4] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xB4 - ldrb r0, [r0] - cmp r0, 0x78 - bls _08049D36 - adds r0, r1, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0x18 - movs r2, 0xE - movs r3, 0x1D - bl AddTextPrinterParametrized - movs r0, 0x18 - movs r1, 0xE - movs r2, 0x4 - bl sub_807292C - ldr r0, [r4] - adds r0, 0xB4 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x3 - strb r1, [r0] -_08049D36: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08049D40: .4byte 0x03004824 - thumb_func_end DisplayMessageAndContinueTask - - thumb_func_start sub_8049D44 -sub_8049D44: @ 8049D44 - push {lr} - ldr r0, _08049D90 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08049D8A - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_804A840 - movs r0, 0x1 - bl sub_804A840 - ldr r2, _08049D94 - ldr r0, [r2] - adds r0, 0x7B - movs r1, 0 - strb r1, [r0] - ldr r3, _08049D98 - ldr r0, [r2] - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_08049D8A: - pop {r0} - bx r0 - .align 2, 0 -_08049D90: .4byte 0x03001770 -_08049D94: .4byte 0x03004824 -_08049D98: .4byte 0x02020004 - thumb_func_end sub_8049D44 - - thumb_func_start sub_8049D9C -sub_8049D9C: @ 8049D9C - push {lr} - ldr r0, _08049DBC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08049DB8 - bl sub_800832C - ldr r0, _08049DC0 - ldr r0, [r0] - adds r0, 0x7B - movs r1, 0xC - strb r1, [r0] -_08049DB8: - pop {r0} - bx r0 - .align 2, 0 -_08049DBC: .4byte 0x0202f388 -_08049DC0: .4byte 0x03004824 - thumb_func_end sub_8049D9C - - thumb_func_start sub_8049DC4 -sub_8049DC4: @ 8049DC4 - push {lr} - ldr r0, _08049DD8 - ldrb r0, [r0] - cmp r0, 0 - bne _08049DD4 - ldr r0, _08049DDC - bl SetMainCallback2 -_08049DD4: - pop {r0} - bx r0 - .align 2, 0 -_08049DD8: .4byte 0x03002fa4 -_08049DDC: .4byte sub_805465C - thumb_func_end sub_8049DC4 - - thumb_func_start sub_8049DE0 -sub_8049DE0: @ 8049DE0 - push {lr} - ldr r0, _08049DF8 - ldr r0, [r0] - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0xF - bhi _08049E98 - lsls r0, 2 - ldr r1, _08049DFC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08049DF8: .4byte 0x03004824 -_08049DFC: .4byte _08049E00 - .align 2, 0 -_08049E00: - .4byte _08049E40 - .4byte _08049E46 - .4byte _08049E4C - .4byte _08049E52 - .4byte _08049E58 - .4byte _08049E98 - .4byte _08049E5E - .4byte _08049E64 - .4byte _08049E6A - .4byte _08049E70 - .4byte _08049E76 - .4byte _08049E7C - .4byte _08049E82 - .4byte _08049E88 - .4byte _08049E8E - .4byte _08049E94 -_08049E40: - bl sub_8049680 - b _08049E98 -_08049E46: - bl sub_8049860 - b _08049E98 -_08049E4C: - bl sub_804997C - b _08049E98 -_08049E52: - bl sub_8049AC0 - b _08049E98 -_08049E58: - bl sub_8049BC0 - b _08049E98 -_08049E5E: - bl sub_8049C8C - b _08049E98 -_08049E64: - bl sub_8049CC4 - b _08049E98 -_08049E6A: - bl sub_8049D44 - b _08049E98 -_08049E70: - bl sub_8048A14 - b _08049E98 -_08049E76: - bl sub_8048A50 - b _08049E98 -_08049E7C: - bl sub_8049D9C - b _08049E98 -_08049E82: - bl sub_8049DC4 - b _08049E98 -_08049E88: - bl sub_8048A90 - b _08049E98 -_08049E8E: - bl DisplayMessageAndContinueTask - b _08049E98 -_08049E94: - bl sub_8049954 -_08049E98: - pop {r0} - bx r0 - thumb_func_end sub_8049DE0 - - thumb_func_start sub_8049E9C -sub_8049E9C: @ 8049E9C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _08049ED0 - ldr r0, [r3] - adds r0, 0x80 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _08049EC8 - movs r0, 0x1 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x82 - adds r0, r2 - strb r4, [r0] -_08049EC8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08049ED0: .4byte 0x03004824 - thumb_func_end sub_8049E9C - - thumb_func_start sub_8049ED4 -sub_8049ED4: @ 8049ED4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x74 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _08049F24 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0x82 - add r0, r10 - ldrb r0, [r0] - movs r1, 0x1 - str r1, [sp, 0x6C] - cmp r0, 0x5 - bhi _08049EFE - movs r2, 0 - str r2, [sp, 0x6C] -_08049EFE: - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r5, 0 - adds r0, 0x80 - mov r1, r10 - adds r3, r0, r1 - ldrb r0, [r3] - cmp r0, 0x2 - bne _08049F1A - b _0804A0AC -_08049F1A: - cmp r0, 0x2 - bgt _08049F28 - cmp r0, 0x1 - beq _08049F36 - b _0804A294 - .align 2, 0 -_08049F24: .4byte 0x03004824 -_08049F28: - cmp r0, 0x3 - bne _08049F2E - b _0804A0E4 -_08049F2E: - cmp r0, 0x4 - bne _08049F34 - b _0804A244 -_08049F34: - b _0804A294 -_08049F36: - movs r4, 0 - adds r0, r5, 0 - adds r0, 0x42 - add r0, r10 - ldr r7, _0804A094 - ldr r2, [sp, 0x6C] - lsls r2, 1 - mov r9, r2 - ldr r3, _0804A098 - mov r12, r3 - mov r5, r10 - lsls r5, 4 - str r5, [sp, 0x70] - ldrb r0, [r0] - cmp r4, r0 - bcs _08049F8E - adds r6, r7, 0 - ldr r2, _0804A09C - ldr r0, [sp, 0x6C] - add r0, r9 - lsls r3, r0, 1 - movs r5, 0x4 -_08049F62: - ldr r0, [r2] - adds r1, r4, r3 - adds r0, 0x34 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [r2] - adds r0, 0x42 - add r0, r10 - ldrb r0, [r0] - cmp r4, r0 - bcc _08049F62 -_08049F8E: - ldr r1, _0804A09C - ldr r0, [r1] - ldr r5, [sp, 0x6C] - add r5, r9 - lsls r3, r5, 1 - mov r2, r8 - adds r6, r2, r3 - adds r0, 0x34 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, _0804A09C - ldr r4, [r0] - adds r4, 0x34 - adds r4, r6 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x14 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - lsls r5, 2 - mov r1, r12 - adds r0, r5, r1 - ldrb r0, [r0] - adds r3, 0x1 - lsls r3, 1 - add r3, r12 - ldrb r1, [r3] - adds r0, r1 - asrs r0, 1 - lsls r0, 3 - adds r0, 0xE - strh r0, [r2, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - mov r0, r12 - adds r0, 0x1 - adds r5, r0 - ldrb r0, [r5] - lsls r0, 3 - subs r0, 0xC - strh r0, [r1, 0x36] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, _0804A0A0 - bl oamt_set_x3A_32 - ldr r2, _0804A09C - ldr r1, [r2] - adds r1, 0x80 - add r1, r10 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - adds r0, 0x34 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - bl sub_8078A34 - bl sub_8072DEC - ldr r3, _0804A09C - ldr r0, [r3] - adds r0, 0x4 - ldr r1, _0804A0A4 - mov r5, r9 - adds r2, r5, r1 - ldrb r2, [r2] - adds r1, 0x1 - add r1, r9 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0x13 - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0 - bl FillWindowRect_DefaultPalette - ldr r1, _0804A09C - ldr r0, [r1] - adds r0, 0xC8 - ldr r2, [sp, 0x70] - mov r3, r10 - subs r1, r2, r3 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0804A0A8 - movs r2, 0xF - str r2, [sp] - movs r2, 0x11 - str r2, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - movs r2, 0 - bl sub_804A96C - ldr r0, [sp, 0x6C] - cmp r0, 0 - beq _0804A08C - b _0804A294 -_0804A08C: - bl sub_804A80C - b _0804A294 - .align 2, 0 -_0804A094: .4byte 0x02020004 -_0804A098: .4byte gUnknown_0820C29C -_0804A09C: .4byte 0x03004824 -_0804A0A0: .4byte sub_809D62C -_0804A0A4: .4byte gUnknown_0820C330 -_0804A0A8: .4byte gUnknown_0820ADEE -_0804A0AC: - ldr r2, _0804A0DC - ldr r1, [sp, 0x6C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r8 - adds r1, r5, 0 - adds r1, 0x34 - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0804A0E0 - cmp r1, r0 - beq _0804A0D4 - b _0804A294 -_0804A0D4: - movs r0, 0x3 - strb r0, [r3] - b _0804A294 - .align 2, 0 -_0804A0DC: .4byte 0x02020004 -_0804A0E0: .4byte sub_809D62C -_0804A0E4: - adds r0, r5, 0 - adds r0, 0xC8 - ldr r2, [sp, 0x6C] - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0804A228 - movs r2, 0xF - str r2, [sp] - movs r7, 0x11 - str r7, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - movs r2, 0 - bl sub_804A96C - ldr r0, _0804A22C - ldr r3, [r0] - ldr r1, [sp, 0x6C] - lsls r6, r1, 1 - adds r1, r6 - mov r9, r1 - lsls r1, 1 - mov r2, r8 - adds r0, r2, r1 - adds r3, 0x34 - adds r3, r0 - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r5, _0804A230 - adds r2, r5 - ldr r4, _0804A234 - mov r0, r9 - lsls r5, r0, 2 - adds r0, r5, r4 - ldrb r0, [r0] - adds r1, 0x1 - lsls r1, 1 - adds r1, r4 - ldrb r1, [r1] - adds r0, r1 - asrs r0, 1 - lsls r0, 3 - adds r0, 0xE - strh r0, [r2, 0x20] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _0804A230 - adds r1, r2 - adds r4, 0x1 - adds r5, r4 - ldrb r0, [r5] - lsls r0, 3 - subs r0, 0xC - strh r0, [r1, 0x22] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r5, 0 - strh r5, [r0, 0x24] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x26] - mov r0, sp - adds r0, 0x12 - ldr r1, [sp, 0x6C] - mov r2, r8 - bl sub_804A2B4 - add r1, sp, 0xC - movs r3, 0xFC - strb r3, [r1] - adds r2, r1, 0 - movs r1, 0x6 - strb r1, [r2, 0x1] - movs r1, 0x4 - strb r1, [r2, 0x2] - adds r1, r2, 0 - strb r3, [r1, 0x3] - strb r7, [r1, 0x4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x40 - subs r1, r0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - strb r1, [r2, 0x5] - ldr r0, _0804A22C - ldr r1, [r0] - adds r0, r1, 0x4 - adds r1, 0x7A - ldrb r2, [r1] - mov r1, r9 - lsls r1, 6 - mov r9, r1 - add r2, r9 - ldr r4, _0804A238 - ldr r3, [sp, 0x6C] - lsls r1, r3, 2 - adds r3, r1, r4 - ldrb r3, [r3] - ldr r5, _0804A23C - adds r1, r5 - ldrb r1, [r1] - str r1, [sp] - add r1, sp, 0xC - bl sub_8003460 - add r7, sp, 0x34 - adds r0, r7, 0 - ldr r1, [sp, 0x6C] - mov r2, r8 - bl sub_804A33C - ldr r0, _0804A22C - ldr r2, [r0] - adds r0, r2, 0x4 - ldr r1, _0804A240 - adds r2, 0x7A - ldrb r2, [r2] - add r2, r9 - adds r2, 0x20 - adds r6, 0x1 - lsls r6, 1 - adds r4, r6, r4 - ldrb r5, [r4] - ldr r3, _0804A23C - adds r6, r3 - ldrb r4, [r6] - adds r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - adds r3, r5, 0 - bl sub_8003460 - ldr r0, _0804A22C - ldr r1, [r0] - adds r0, r1, 0x4 - adds r1, 0x7A - ldrb r2, [r1] - add r2, r9 - adds r2, 0x26 - str r4, [sp] - adds r1, r7, 0 - adds r3, r5, 0 - bl sub_8003460 - ldr r2, _0804A22C - ldr r1, [r2] - b _0804A28A - .align 2, 0 -_0804A228: .4byte gUnknown_0820ABF0 -_0804A22C: .4byte 0x03004824 -_0804A230: .4byte 0x02020004 -_0804A234: .4byte gUnknown_0820C29C -_0804A238: .4byte gUnknown_0820C334 -_0804A23C: .4byte gUnknown_0820C335 -_0804A240: .4byte gUnknown_0842C7CA -_0804A244: - ldr r0, _0804A2A4 - ldr r0, [r0, 0x14] - adds r1, r5, 0 - adds r1, 0x7E - ldrh r1, [r1] - lsls r1, 5 - ldr r3, _0804A2A8 - adds r1, r3 - movs r2, 0x14 - bl sub_804ACD8 - ldr r0, _0804A2AC - mov r5, r10 - lsls r1, r5, 1 - adds r4, r1, r0 - ldrb r2, [r4] - adds r2, 0x4 - lsls r2, 24 - lsrs r2, 24 - adds r0, 0x1 - adds r1, r0 - ldrb r3, [r1] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4] - str r0, [sp] - ldrb r0, [r1] - str r0, [sp, 0x4] - mov r0, r10 - mov r1, r8 - bl sub_804A51C - ldr r0, _0804A2B0 - ldr r1, [r0] -_0804A28A: - adds r1, 0x80 - add r1, r10 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0804A294: - add sp, 0x74 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A2A4: .4byte gUnknown_0820C14C -_0804A2A8: .4byte 0x06010000 -_0804A2AC: .4byte gUnknown_0820C3D1 -_0804A2B0: .4byte 0x03004824 - thumb_func_end sub_8049ED4 - - thumb_func_start sub_804A2B4 -sub_804A2B4: @ 804A2B4 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r1, 0 - bne _0804A2F4 - movs r0, 0x64 - adds r4, r2, 0 - muls r4, r0 - ldr r0, _0804A2F0 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - adds r0, r5, 0 - mov r1, sp - bl StringCopy10 - adds r0, r4, 0 - bl pokemon_get_gender - adds r0, r4, 0 - movs r1, 0x38 - bl PokemonGetField - b _0804A31E - .align 2, 0 -_0804A2F0: .4byte 0x03004360 -_0804A2F4: - movs r0, 0x64 - adds r4, r2, 0 - muls r4, r0 - ldr r0, _0804A334 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - adds r0, r5, 0 - mov r1, sp - bl StringCopy10 - adds r0, r4, 0 - bl pokemon_get_gender - adds r0, r4, 0 - movs r1, 0x38 - bl PokemonGetField -_0804A31E: - ldr r0, _0804A338 - adds r1, r5, 0 - bl GetStringWidthGivenWindowConfig - lsls r0, 24 - lsrs r0, 24 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0804A334: .4byte 0x030045c0 -_0804A338: .4byte gWindowConfig_81E7294 - thumb_func_end sub_804A2B4 - - thumb_func_start sub_804A33C -sub_804A33C: @ 804A33C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0804A384 - ldr r1, [r0] - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 1 - adds r0, r2, r0 - adds r1, 0x5D - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _0804A3F4 - movs r4, 0 - movs r0, 0x64 - adds r5, r2, 0 - muls r5, r0 - ldr r0, _0804A388 - mov r9, r0 - ldr r2, _0804A38C - mov r8, r2 -_0804A376: - cmp r7, 0 - bne _0804A390 - adds r1, r4, 0 - adds r1, 0xD - mov r2, r9 - b _0804A396 - .align 2, 0 -_0804A384: .4byte 0x03004824 -_0804A388: .4byte 0x03004360 -_0804A38C: .4byte 0x030045c0 -_0804A390: - adds r1, r4, 0 - adds r1, 0xD - mov r2, r8 -_0804A396: - adds r0, r5, r2 - movs r2, 0 - bl PokemonGetField - lsls r1, r4, 1 - add r1, sp - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _0804A376 - ldr r1, _0804A3E8 - adds r0, r6, 0 - bl StringCopy - movs r4, 0 -_0804A3B8: - lsls r0, r4, 1 - mov r2, sp - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _0804A3D4 - adds r1, r0, 0 - movs r0, 0xD - muls r1, r0 - ldr r0, _0804A3EC - adds r1, r0 - adds r0, r6, 0 - bl StringAppend -_0804A3D4: - adds r0, r6, 0 - ldr r1, _0804A3F0 - bl StringAppend - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _0804A3B8 - b _0804A404 - .align 2, 0 -_0804A3E8: .4byte gUnknown_0820C33C -_0804A3EC: .4byte gMoveNames -_0804A3F0: .4byte gUnknown_0842C7CB -_0804A3F4: - ldr r1, _0804A414 - adds r0, r6, 0 - bl StringCopy - ldr r1, _0804A418 - adds r0, r6, 0 - bl StringAppend -_0804A404: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A414: .4byte gUnknown_0820C33C -_0804A418: .4byte gUnknown_0842C7D6 - thumb_func_end sub_804A33C - - thumb_func_start sub_804A41C -sub_804A41C: @ 804A41C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - lsls r0, 24 - lsrs r5, r0, 24 - add r3, sp, 0x1C - movs r2, 0 - movs r1, 0xFC - strb r1, [r3] - movs r0, 0x6 - strb r0, [r3, 0x1] - movs r0, 0x4 - strb r0, [r3, 0x2] - strb r1, [r3, 0x3] - movs r0, 0x11 - strb r0, [r3, 0x4] - strb r2, [r3, 0x5] - movs r6, 0 - ldr r1, _0804A470 - ldr r0, [r1] - adds r0, 0x42 - adds r0, r5 - ldrb r0, [r0] - cmp r6, r0 - bcs _0804A504 - mov r8, r3 - adds r7, r1, 0 - ldr r0, _0804A474 - mov r9, r0 - movs r4, 0x1 - add r4, r9 - mov r10, r4 -_0804A462: - cmp r5, 0 - bne _0804A47C - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _0804A478 - b _0804A484 - .align 2, 0 -_0804A470: .4byte 0x03004824 -_0804A474: .4byte gUnknown_0820C29C -_0804A478: .4byte 0x03004360 -_0804A47C: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _0804A514 -_0804A484: - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - add r2, sp, 0x4 - bl PokemonGetField - mov r0, sp - adds r0, 0x22 - add r1, sp, 0x4 - bl StringCopy10 - adds r0, r4, 0 - bl pokemon_get_gender - mov r1, sp - adds r1, 0x22 - ldr r0, _0804A518 - bl GetStringWidthGivenWindowConfig - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x32 - subs r1, r0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - mov r0, r8 - strb r1, [r0, 0x5] - ldr r1, [r7] - adds r0, r1, 0x4 - adds r1, 0x7A - lsls r2, r5, 5 - adds r2, r5 - lsls r2, 2 - ldrb r1, [r1] - adds r2, r1 - movs r1, 0x16 - muls r1, r6 - adds r2, r1 - lsls r2, 16 - lsrs r2, 16 - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 1 - adds r1, r6, r1 - lsls r1, 1 - mov r4, r9 - adds r3, r1, r4 - ldrb r3, [r3] - add r1, r10 - ldrb r1, [r1] - str r1, [sp] - mov r1, r8 - bl sub_8003460 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [r7] - adds r0, 0x42 - adds r0, r5 - ldrb r0, [r0] - cmp r6, r0 - bcc _0804A462 -_0804A504: - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A514: .4byte 0x030045c0 -_0804A518: .4byte gWindowConfig_81E7294 - thumb_func_end sub_804A41C - - thumb_func_start sub_804A51C -sub_804A51C: @ 804A51C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - ldr r4, [sp, 0x48] - ldr r5, [sp, 0x4C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x24] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0804A59C - ldr r0, [r0] - adds r0, 0xC8 - ldr r3, _0804A5A0 - movs r1, 0x6 - str r1, [sp] - movs r1, 0x3 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804A96C - mov r0, r8 - cmp r0, 0 - bne _0804A5A8 - movs r0, 0x64 - mov r4, r9 - muls r4, r0 - ldr r0, _0804A5A4 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x38 - movs r2, 0 - bl PokemonGetField - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - bl pokemon_get_gender - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x2 - add r2, sp, 0xC - bl PokemonGetField - b _0804A5D4 - .align 2, 0 -_0804A59C: .4byte 0x03004824 -_0804A5A0: .4byte gUnknown_08EA1DC8 -_0804A5A4: .4byte 0x03004360 -_0804A5A8: - movs r0, 0x64 - mov r4, r9 - muls r4, r0 - ldr r0, _0804A65C - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x38 - movs r2, 0 - bl PokemonGetField - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - bl pokemon_get_gender - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x2 - add r2, sp, 0xC - bl PokemonGetField -_0804A5D4: - ldr r1, _0804A660 - ldr r5, [r1] - mov r3, r8 - lsls r0, r3, 1 - add r0, r8 - lsls r0, 1 - add r0, r9 - adds r1, r5, 0 - adds r1, 0x5D - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _0804A690 - adds r0, r6, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [sp, 0x24] - lsls r2, r0, 5 - cmp r4, 0 - beq _0804A614 - mov r1, r10 - adds r0, r1, r2 - lsls r0, 1 - adds r1, r5, 0 - adds r1, 0xDA - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x60 - strh r0, [r1] -_0804A614: - ldr r3, _0804A660 - ldr r4, [r3] - mov r0, r10 - adds r5, r0, r2 - adds r0, r5, 0x1 - lsls r0, 1 - adds r4, 0xDA - adds r4, r0 - adds r0, r6, 0 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x70 - strh r0, [r4] - cmp r7, 0 - bne _0804A664 - add r0, sp, 0xC - movs r1, 0 - bl sub_8042548 - lsls r0, 24 - cmp r0, 0 - bne _0804A6CC - ldr r3, _0804A660 - ldr r1, [r3] - adds r0, r5, 0 - subs r0, 0x1F - lsls r0, 1 - adds r1, 0xDA - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - b _0804A6CA - .align 2, 0 -_0804A65C: .4byte 0x030045c0 -_0804A660: .4byte 0x03004824 -_0804A664: - cmp r7, 0xFE - bne _0804A6CC - add r0, sp, 0xC - movs r1, 0xFE - bl sub_8042548 - lsls r0, 24 - cmp r0, 0 - bne _0804A6CC - ldr r0, _0804A68C - ldr r1, [r0] - adds r0, r5, 0 - subs r0, 0x1F - lsls r0, 1 - adds r1, 0xDA - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x2 - b _0804A6CA - .align 2, 0 -_0804A68C: .4byte 0x03004824 -_0804A690: - ldr r1, [sp, 0x24] - lsls r0, r1, 5 - mov r1, r10 - adds r3, r1, r0 - adds r1, r3, 0 - subs r1, 0x20 - lsls r1, 1 - adds r2, r5, 0 - adds r2, 0xDA - adds r1, r2, r1 - adds r0, r3, 0 - subs r0, 0x21 - lsls r0, 1 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, r3, 0 - subs r1, 0x1F - lsls r1, 1 - adds r1, r2, r1 - adds r0, r3, 0 - subs r0, 0x24 - lsls r0, 1 - adds r2, r0 - ldrh r2, [r2] - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - orrs r0, r2 -_0804A6CA: - strh r0, [r1] -_0804A6CC: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804A51C - - thumb_func_start sub_804A6DC -sub_804A6DC: @ 804A6DC - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r7, 0 - ldr r0, _0804A734 - ldr r0, [r0] - adds r0, 0x42 - adds r0, r6 - ldrb r0, [r0] - cmp r7, r0 - bge _0804A72C - lsls r0, r6, 1 - adds r0, r6 - ldr r1, _0804A738 - lsls r0, 2 - adds r5, r0, r1 - ldr r1, _0804A73C - adds r4, r0, r1 -_0804A702: - lsls r1, r7, 24 - lsrs r1, 24 - ldrb r2, [r5] - ldrb r3, [r5, 0x1] - ldrb r0, [r4] - str r0, [sp] - ldrb r0, [r4, 0x1] - str r0, [sp, 0x4] - adds r0, r6, 0 - bl sub_804A51C - adds r5, 0x2 - adds r4, 0x2 - adds r7, 0x1 - ldr r0, _0804A734 - ldr r0, [r0] - adds r0, 0x42 - adds r0, r6 - ldrb r0, [r0] - cmp r7, r0 - blt _0804A702 -_0804A72C: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A734: .4byte 0x03004824 -_0804A738: .4byte gUnknown_0820C2B6 -_0804A73C: .4byte gUnknown_0820C2CE - thumb_func_end sub_804A6DC - - thumb_func_start sub_804A740 -sub_804A740: @ 804A740 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r7, 0 - ldr r3, _0804A800 - ldr r0, [r3] - adds r0, 0x42 - add r0, r12 - ldrb r0, [r0] - cmp r7, r0 - bge _0804A7F2 - ldr r6, _0804A804 - mov r9, r3 - mov r1, r12 - lsls r0, r1, 1 - add r0, r12 - lsls r2, r0, 1 - mov r10, r2 - ldr r1, _0804A808 - movs r2, 0 - mov r8, r2 - lsls r0, 2 - adds r5, r0, r1 -_0804A778: - mov r1, r9 - ldr r0, [r1] - mov r2, r10 - adds r4, r7, r2 - adds r0, 0x34 - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - mov r0, r9 - ldr r3, [r0] - adds r2, r3, 0 - adds r2, 0x34 - adds r2, r4 - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r5] - lsls r0, 3 - adds r0, 0xE - strh r0, [r1, 0x20] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r5, 0x1] - lsls r0, 3 - subs r0, 0xC - strh r0, [r1, 0x22] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x24] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r2, r8 - strh r2, [r0, 0x26] - adds r5, 0x2 - adds r7, 0x1 - adds r3, 0x42 - add r3, r12 - ldrb r3, [r3] - cmp r7, r3 - blt _0804A778 -_0804A7F2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A800: .4byte 0x03004824 -_0804A804: .4byte 0x02020004 -_0804A808: .4byte gUnknown_0820C29C - thumb_func_end sub_804A740 - - thumb_func_start sub_804A80C -sub_804A80C: @ 804A80C - push {lr} - sub sp, 0x8 - ldr r0, _0804A838 - ldr r0, [r0] - adds r0, 0x4 - ldr r1, _0804A83C - ldrb r2, [r1, 0x2] - ldrb r1, [r1, 0x3] - str r1, [sp] - movs r1, 0x13 - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0 - bl FillWindowRect_DefaultPalette - movs r0, 0x1 - bl sub_804A41C - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0804A838: .4byte 0x03004824 -_0804A83C: .4byte gUnknown_0820C330 - thumb_func_end sub_804A80C - - thumb_func_start sub_804A840 -sub_804A840: @ 804A840 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0804A8A8 - ldr r4, _0804A89C - ldr r0, [r4] - adds r0, 0x4 - ldr r1, _0804A8A0 - ldrb r2, [r1] - ldrb r1, [r1, 0x1] - str r1, [sp] - movs r1, 0x13 - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0 - bl FillWindowRect_DefaultPalette - ldr r0, [r4] - adds r0, 0xC8 - ldr r3, _0804A8A4 - movs r1, 0xF - str r1, [sp] - movs r1, 0x11 - str r1, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0 - movs r2, 0 - bl sub_804A96C - movs r0, 0 - bl sub_804A6DC - movs r0, 0 - bl sub_804A41C - movs r0, 0 - bl sub_804A740 - ldr r0, [r4] - adds r0, 0xC8 - bl sub_804A938 - b _0804A8FA - .align 2, 0 -_0804A89C: .4byte 0x03004824 -_0804A8A0: .4byte gUnknown_0820C330 -_0804A8A4: .4byte gUnknown_0820ADEE -_0804A8A8: - bl sub_8072DEC - ldr r4, _0804A924 - ldr r0, [r4] - adds r0, 0x4 - ldr r1, _0804A928 - ldrb r2, [r1, 0x2] - ldrb r1, [r1, 0x3] - str r1, [sp] - movs r1, 0x13 - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0 - bl FillWindowRect_DefaultPalette - ldr r0, [r4] - adds r0, 0xC8 - ldr r3, _0804A92C - movs r1, 0xF - str r1, [sp] - movs r1, 0x11 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0xF - movs r2, 0 - bl sub_804A96C - movs r0, 0x1 - bl sub_804A6DC - movs r0, 0x1 - bl sub_804A41C - movs r0, 0x1 - bl sub_804A740 - ldr r0, [r4] - adds r0, 0xC8 - bl sub_804A938 -_0804A8FA: - ldr r0, _0804A930 - ldr r0, [r0, 0x4] - ldr r4, _0804A924 - ldr r1, [r4] - adds r1, 0x7E - ldrh r1, [r1] - lsls r1, 5 - ldr r2, _0804A934 - adds r1, r2 - movs r2, 0x14 - bl sub_804ACD8 - ldr r0, [r4] - adds r0, 0x80 - adds r0, r5 - movs r1, 0 - strb r1, [r0] - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804A924: .4byte 0x03004824 -_0804A928: .4byte gUnknown_0820C330 -_0804A92C: .4byte gUnknown_0820ADEE -_0804A930: .4byte gUnknown_0820C14C -_0804A934: .4byte 0x06010000 - thumb_func_end sub_804A840 - - thumb_func_start sub_804A938 -sub_804A938: @ 804A938 - movs r1, 0x1 - strb r1, [r0, 0x10] - bx lr - thumb_func_end sub_804A938 - - thumb_func_start sub_804A940 -sub_804A940: @ 804A940 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x10] - cmp r0, 0 - beq _0804A95C - adds r0, r4, 0 - adds r0, 0x12 - ldr r1, [r4, 0x8] - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - movs r0, 0 - strb r0, [r4, 0x10] -_0804A95C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804A940 - - thumb_func_start sub_804A964 -sub_804A964: @ 804A964 - movs r2, 0 - strb r2, [r0, 0x10] - str r1, [r0, 0x8] - bx lr - thumb_func_end sub_804A964 - - thumb_func_start sub_804A96C -sub_804A96C: @ 804A96C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - mov r10, r3 - ldr r0, [sp, 0x24] - ldr r3, [sp, 0x28] - ldr r4, [sp, 0x2C] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r3, 24 - lsrs r3, 24 - mov r12, r3 - lsls r4, 16 - lsrs r7, r4, 16 - movs r2, 0 - cmp r2, r12 - bge _0804A9DE - ldr r0, [sp] - adds r0, 0x12 - mov r9, r0 - lsls r0, r6, 5 - adds r0, r1 - mov r8, r0 -_0804A9AA: - movs r4, 0 - adds r6, r2, 0x1 - cmp r4, r5 - bge _0804A9D8 - lsls r1, r2, 5 - add r1, r8 - adds r0, r5, 0 - muls r0, r2 - lsls r0, 1 - mov r2, r10 - adds r3, r0, r2 - lsls r1, 1 - mov r0, r9 - adds r2, r1, r0 -_0804A9C6: - ldrh r1, [r3] - adds r0, r7, 0 - orrs r0, r1 - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - adds r4, 0x1 - cmp r4, r5 - blt _0804A9C6 -_0804A9D8: - adds r2, r6, 0 - cmp r2, r12 - blt _0804A9AA -_0804A9DE: - movs r0, 0x1 - ldr r1, [sp] - strb r0, [r1, 0x10] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804A96C - - thumb_func_start sub_804A9F4 -sub_804A9F4: @ 804A9F4 - push {lr} - bl sub_8071EF4 - pop {r0} - bx r0 - thumb_func_end sub_804A9F4 - - thumb_func_start sub_804AA00 -sub_804AA00: @ 804AA00 - push {lr} - bl sub_8071EF4 - pop {r0} - bx r0 - thumb_func_end sub_804AA00 - - thumb_func_start sub_804AA0C -sub_804AA0C: @ 804AA0C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - ldr r0, _0804AA7C - mov r8, r0 - ldr r0, [r0] - adds r0, 0x4 - ldr r2, _0804AA80 - lsrs r4, 22 - adds r1, r4, r2 - ldrb r6, [r1] - adds r1, r2, 0x1 - adds r1, r4, r1 - ldrb r5, [r1] - adds r1, r2, 0x2 - adds r1, r4, r1 - ldrb r3, [r1] - adds r2, 0x3 - adds r2, r4, r2 - ldrb r1, [r2] - str r1, [sp] - adds r1, r6, 0 - adds r2, r5, 0 - bl AddTextPrinterParametrized - mov r1, r8 - ldr r3, [r1] - adds r0, r3, 0x4 - ldr r1, _0804AA84 - adds r4, r1 - ldr r1, [r4] - adds r3, 0x7A - movs r4, 0xC0 - lsls r4, 1 - adds r2, r4, 0 - ldrb r3, [r3] - adds r2, r3 - adds r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - adds r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - str r5, [sp] - adds r3, r6, 0 - bl sub_8003460 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804AA7C: .4byte 0x03004824 -_0804AA80: .4byte gUnknown_0820C308 -_0804AA84: .4byte gUnknown_0820C2F0 - thumb_func_end sub_804AA0C - - thumb_func_start sub_804AA88 -sub_804AA88: @ 804AA88 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r3, 0 - ldr r5, _0804AAD0 - ldr r0, _0804AAD4 - mov r8, r0 - movs r4, 0 - ldr r2, _0804AAD8 - mov r12, r2 - movs r7, 0x8E - lsls r7, 4 - movs r6, 0xFF -_0804AAA2: - ldr r0, [r5] - lsls r2, r3, 3 - adds r0, r2 - add r0, r8 - strb r4, [r0] - ldr r1, [r5] - adds r1, r2 - mov r2, r12 - adds r0, r1, r2 - strh r4, [r0] - adds r1, r7 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0x3 - ble _0804AAA2 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AAD0: .4byte 0x03004824 -_0804AAD4: .4byte 0x000008dc -_0804AAD8: .4byte 0x000008de - thumb_func_end sub_804AA88 - - thumb_func_start sub_804AADC -sub_804AADC: @ 804AADC - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - movs r3, 0 - ldr r4, _0804AB18 - mov r12, r4 - ldr r7, _0804AB1C -_0804AAEE: - mov r1, r12 - ldr r0, [r1] - lsls r1, r3, 3 - adds r2, r0, r1 - adds r0, r2, r7 - ldrb r0, [r0] - cmp r0, 0 - bne _0804AB24 - ldr r3, _0804AB20 - adds r0, r2, r3 - strh r5, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strb r6, [r0] - ldr r0, [r4] - adds r0, r1 - ldr r1, _0804AB1C - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _0804AB2A - .align 2, 0 -_0804AB18: .4byte 0x03004824 -_0804AB1C: .4byte 0x000008dc -_0804AB20: .4byte 0x000008de -_0804AB24: - adds r3, 0x1 - cmp r3, 0x3 - ble _0804AAEE -_0804AB2A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804AADC - - thumb_func_start sub_804AB30 -sub_804AB30: @ 804AB30 - push {r4,r5,lr} - movs r4, 0 - ldr r3, _0804AB58 -_0804AB36: - ldr r0, [r3] - lsls r1, r4, 3 - adds r2, r0, r1 - ldr r5, _0804AB5C - adds r0, r2, r5 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0 - beq _0804ABE2 - ldr r0, _0804AB60 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _0804AB64 - subs r0, 0x1 - strh r0, [r1] - b _0804ABE2 - .align 2, 0 -_0804AB58: .4byte 0x03004824 -_0804AB5C: .4byte 0x000008dc -_0804AB60: .4byte 0x000008de -_0804AB64: - movs r1, 0x8E - lsls r1, 4 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _0804ABD2 - lsls r0, 2 - ldr r1, _0804AB7C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804AB7C: .4byte _0804AB80 - .align 2, 0 -_0804AB80: - .4byte _0804AB98 - .4byte _0804ABB4 - .4byte _0804ABBC - .4byte _0804ABC4 - .4byte _0804ABC4 - .4byte _0804ABCC -_0804AB98: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0804ABB0 - ldr r1, [r1] - adds r1, 0x8C - movs r2, 0x14 - bl SendBlock - b _0804ABD2 - .align 2, 0 -_0804ABB0: .4byte 0x03004824 -_0804ABB4: - movs r0, 0 - bl sub_804AA0C - b _0804ABD2 -_0804ABBC: - movs r0, 0x2 - bl sub_804AA0C - b _0804ABD2 -_0804ABC4: - movs r0, 0x3 - bl sub_804AA0C - b _0804ABD2 -_0804ABCC: - movs r0, 0x3 - bl sub_804AA0C -_0804ABD2: - ldr r0, _0804ABF0 - ldr r1, [r0] - adds r1, r5 - ldr r2, _0804ABF4 - adds r1, r2 - movs r2, 0 - strb r2, [r1] - adds r3, r0, 0 -_0804ABE2: - adds r4, 0x1 - cmp r4, 0x3 - ble _0804AB36 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804ABF0: .4byte 0x03004824 -_0804ABF4: .4byte 0x000008dc - thumb_func_end sub_804AB30 - - thumb_func_start sub_804ABF8 -sub_804ABF8: @ 804ABF8 - push {r4,lr} - ldr r0, _0804AC14 - ldr r1, [r0] - adds r1, 0xB4 - ldrb r1, [r1] - subs r1, 0x8 - adds r4, r0, 0 - cmp r1, 0x8 - bhi _0804ACB0 - lsls r0, r1, 2 - ldr r1, _0804AC18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804AC14: .4byte 0x03004824 -_0804AC18: .4byte _0804AC1C - .align 2, 0 -_0804AC1C: - .4byte _0804AC40 - .4byte _0804ACB0 - .4byte _0804ACB0 - .4byte _0804ACB0 - .4byte _0804ACB0 - .4byte _0804AC60 - .4byte _0804AC74 - .4byte _0804AC88 - .4byte _0804AC9A -_0804AC40: - ldr r0, [r4] - adds r0, 0xB4 - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _0804AC5C - adds r0, r1 - bl LoadSpriteSheet - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0x7E - strh r0, [r2] - b _0804ACC2 - .align 2, 0 -_0804AC5C: .4byte gUnknown_0820C07C -_0804AC60: - ldr r0, _0804AC6C - bl LoadSpritePalette - ldr r0, _0804AC70 - ldr r1, [r0] - b _0804ACC2 - .align 2, 0 -_0804AC6C: .4byte gUnknown_0820C0E4 -_0804AC70: .4byte 0x03004824 -_0804AC74: - ldr r0, _0804AC80 - bl LoadSpritePalette - ldr r0, _0804AC84 - ldr r1, [r0] - b _0804ACC2 - .align 2, 0 -_0804AC80: .4byte gUnknown_0820C12C -_0804AC84: .4byte 0x03004824 -_0804AC88: - ldr r0, _0804ACA8 - bl LoadSpriteSheet - ldr r0, _0804ACAC - ldr r1, [r0] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0804AC9A: - ldr r0, _0804ACAC - ldr r0, [r0] - adds r0, 0xB4 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _0804ACCC - .align 2, 0 -_0804ACA8: .4byte gUnknown_0820C124 -_0804ACAC: .4byte 0x03004824 -_0804ACB0: - ldr r0, [r4] - adds r0, 0xB4 - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _0804ACD4 - adds r0, r1 - bl LoadSpriteSheet - ldr r1, [r4] -_0804ACC2: - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 -_0804ACCC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0804ACD4: .4byte gUnknown_0820C07C - thumb_func_end sub_804ABF8 - - thumb_func_start sub_804ACD8 -sub_804ACD8: @ 804ACD8 - push {r4,lr} - adds r4, r0, 0 - lsls r3, r2, 24 - lsrs r3, 24 - ldr r0, _0804ACF0 - adds r2, r4, 0 - bl sub_804AFB8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804ACF0: .4byte gWindowConfig_81E725C - thumb_func_end sub_804ACD8 - - thumb_func_start sub_804ACF4 -sub_804ACF4: @ 804ACF4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0 - beq _0804AD0C - cmp r0, 0x1 - beq _0804ADA0 - b _0804AE2C -_0804AD0C: - movs r7, 0 - ldr r1, _0804AD4C - ldr r0, [r1] - adds r0, 0x42 - ldrb r0, [r0] - cmp r7, r0 - blt _0804AD1C - b _0804AE2C -_0804AD1C: - adds r6, r1, 0 - movs r5, 0 - mov r9, r5 -_0804AD22: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _0804AD50 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl PokemonGetField - adds r1, r0, 0 - cmp r1, 0x1 - bne _0804AD54 - ldr r0, [r6] - adds r0, 0x51 - adds r0, r5 - mov r2, r9 - strb r2, [r0] - ldr r0, [r6] - adds r0, 0x5D - adds r0, r5 - b _0804AD84 - .align 2, 0 -_0804AD4C: .4byte 0x03004824 -_0804AD50: .4byte 0x03004360 -_0804AD54: - adds r0, r4, 0 - movs r1, 0x39 - bl PokemonGetField - adds r1, r0, 0 - cmp r1, 0 - bne _0804AD72 - ldr r0, [r6] - adds r0, 0x51 - adds r0, r5 - strb r1, [r0] - ldr r0, [r6] - adds r0, 0x5D - adds r0, r5 - b _0804AD84 -_0804AD72: - ldr r0, [r6] - adds r0, 0x51 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r6] - adds r0, 0x5D - adds r0, r5 - mov r1, r9 -_0804AD84: - strb r1, [r0] - ldr r0, _0804AD9C - adds r5, 0x1 - adds r7, 0x1 - ldr r0, [r0] - adds r0, 0x42 - add r0, r8 - ldrb r0, [r0] - cmp r7, r0 - blt _0804AD22 - b _0804AE2C - .align 2, 0 -_0804AD9C: .4byte 0x03004824 -_0804ADA0: - movs r7, 0 - ldr r1, _0804ADE0 - ldr r0, [r1] - adds r0, 0x43 - ldrb r0, [r0] - cmp r7, r0 - bge _0804AE2C - adds r6, r1, 0 - movs r5, 0x6 - movs r2, 0 - mov r9, r2 -_0804ADB6: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _0804ADE4 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl PokemonGetField - adds r1, r0, 0 - cmp r1, 0x1 - bne _0804ADE8 - ldr r0, [r6] - adds r0, 0x51 - adds r0, r5 - mov r2, r9 - strb r2, [r0] - ldr r0, [r6] - adds r0, 0x5D - adds r0, r5 - b _0804AE18 - .align 2, 0 -_0804ADE0: .4byte 0x03004824 -_0804ADE4: .4byte 0x030045c0 -_0804ADE8: - adds r0, r4, 0 - movs r1, 0x39 - bl PokemonGetField - adds r1, r0, 0 - cmp r1, 0 - bne _0804AE06 - ldr r0, [r6] - adds r0, 0x51 - adds r0, r5 - strb r1, [r0] - ldr r0, [r6] - adds r0, 0x5D - adds r0, r5 - b _0804AE18 -_0804AE06: - ldr r0, [r6] - adds r0, 0x51 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r6] - adds r0, 0x5D - adds r0, r5 - mov r1, r9 -_0804AE18: - strb r1, [r0] - ldr r0, _0804AE38 - adds r5, 0x1 - adds r7, 0x1 - ldr r0, [r0] - adds r0, 0x42 - add r0, r8 - ldrb r0, [r0] - cmp r7, r0 - blt _0804ADB6 -_0804AE2C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AE38: .4byte 0x03004824 - thumb_func_end sub_804ACF4 - - thumb_func_start sub_804AE3C -sub_804AE3C: @ 804AE3C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0804AE4C - cmp r0, 0x1 - beq _0804AEAC - b _0804AF00 -_0804AE4C: - movs r6, 0 - ldr r1, _0804AEA4 - ldr r0, [r1] - adds r0, 0x42 - ldrb r0, [r0] - cmp r6, r0 - bcs _0804AF00 - adds r7, r1, 0 -_0804AE5C: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _0804AEA8 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl PokemonGetField - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x3A - bl PokemonGetField - adds r1, r0, 0 - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl sub_8046200 - ldr r1, [r7] - adds r1, 0x69 - adds r1, r6 - strb r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, [r7] - adds r0, 0x42 - ldrb r0, [r0] - cmp r6, r0 - bcc _0804AE5C - b _0804AF00 - .align 2, 0 -_0804AEA4: .4byte 0x03004824 -_0804AEA8: .4byte 0x03004360 -_0804AEAC: - movs r6, 0 - ldr r1, _0804AF08 - ldr r0, [r1] - adds r0, 0x43 - ldrb r0, [r0] - cmp r6, r0 - bcs _0804AF00 - adds r7, r1, 0 -_0804AEBC: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _0804AF0C - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl PokemonGetField - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x3A - bl PokemonGetField - adds r1, r0, 0 - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl sub_8046200 - ldr r1, [r7] - adds r1, 0x6F - adds r1, r6 - strb r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, [r7] - adds r0, 0x43 - ldrb r0, [r0] - cmp r6, r0 - bcc _0804AEBC -_0804AF00: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AF08: .4byte 0x03004824 -_0804AF0C: .4byte 0x030045c0 - thumb_func_end sub_804AE3C - - thumb_func_start sub_804AF10 -sub_804AF10: @ 804AF10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 -_0804AF18: - movs r4, 0 - ldr r2, _0804AF7C - ldr r0, [r2] - adds r0, 0x42 - adds r0, r5 - adds r1, r5, 0x1 - mov r8, r1 - ldrb r0, [r0] - cmp r4, r0 - bge _0804AF6A - adds r6, r2, 0 - lsls r0, r5, 1 - adds r0, r5 - lsls r7, r0, 1 -_0804AF34: - ldr r2, [r6] - adds r3, r4, r7 - adds r0, r2, 0 - adds r0, 0x34 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804AF80 - adds r0, r1 - adds r2, 0x69 - adds r2, r3 - ldrb r2, [r2] - movs r1, 0x4 - subs r1, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_809D824 - adds r4, 0x1 - ldr r0, [r6] - adds r0, 0x42 - adds r0, r5 - ldrb r0, [r0] - cmp r4, r0 - blt _0804AF34 -_0804AF6A: - mov r5, r8 - cmp r5, 0x1 - ble _0804AF18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AF7C: .4byte 0x03004824 -_0804AF80: .4byte 0x02020004 - thumb_func_end sub_804AF10 - - thumb_func_start sub_804AF84 -sub_804AF84: @ 804AF84 - push {r4,lr} - movs r2, 0 - ldr r4, _0804AFB0 - ldr r3, _0804AFB4 -_0804AF8C: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, 0 - bne _0804AFA2 - ldr r0, [r3] - adds r0, 0xB5 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0804AFA2 - strb r0, [r1] -_0804AFA2: - adds r2, 0x1 - cmp r2, 0xA - ble _0804AF8C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804AFB0: .4byte 0x02028844 -_0804AFB4: .4byte 0x03004824 - thumb_func_end sub_804AF84 - - thumb_func_start sub_804AFB8 -sub_804AFB8: @ 804AFB8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - mov r8, r1 - mov r10, r2 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r6, 0x3 - lsrs r6, r0, 2 - ldr r7, _0804B054 - mov r0, sp - movs r5, 0 - strh r5, [r0] - lsls r4, r6, 6 - movs r0, 0x80 - lsls r0, 17 - orrs r4, r0 - mov r0, sp - adds r1, r7, 0 - adds r2, r4, 0 - bl CpuSet - mov r0, sp - adds r0, 0x2 - strh r5, [r0] - mov r2, r9 - ldrb r1, [r2, 0xD] - lsls r1, 5 - adds r1, r7 - adds r2, r4, 0 - bl CpuSet - mov r0, r9 - adds r1, r7, 0 - mov r2, r10 - bl sub_8004E3C - movs r4, 0 - cmp r4, r6 - bcs _0804B042 -_0804B010: - lsls r0, r4, 7 - adds r0, r7, r0 - lsls r1, r4, 8 - add r1, r8 - movs r2, 0x40 - bl CpuSet - lsls r0, r4, 2 - mov r1, r9 - ldrb r1, [r1, 0xD] - adds r0, r1 - lsls r0, 5 - adds r0, r7, r0 - lsls r1, r4, 3 - adds r1, 0x4 - lsls r1, 5 - add r1, r8 - movs r2, 0x40 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _0804B010 -_0804B042: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804B054: .4byte 0x02039360 - thumb_func_end sub_804AFB8 - - thumb_func_start sub_804B058 -sub_804B058: @ 804B058 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0804B074 - movs r0, 0x17 - bl audio_play - movs r0, 0 - strh r0, [r4, 0x2E] -_0804B074: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804B058 - - thumb_func_start sub_804B07C -sub_804B07C: @ 804B07C - push {lr} - adds r2, r0, 0 - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r1, 0 - bne _0804B0B2 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _0804B098 - strh r1, [r2, 0x2E] -_0804B098: - movs r1, 0x2E - ldrsh r0, [r2, r1] - lsls r0, 1 - ldr r1, _0804B0B8 - adds r0, r1 - ldrb r1, [r2, 0x5] - lsrs r1, 4 - adds r1, 0x10 - lsls r1, 4 - adds r1, 0x4 - movs r2, 0x2 - bl LoadPalette -_0804B0B2: - pop {r0} - bx r0 - .align 2, 0 -_0804B0B8: .4byte gUnknown_08215A98 - thumb_func_end sub_804B07C - - thumb_func_start sub_804B0BC -sub_804B0BC: @ 804B0BC - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - adds r1, 0x1 - strh r1, [r2, 0x2E] - ldrh r0, [r2, 0x26] - adds r0, 0x1 - strh r0, [r2, 0x26] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0xA - bne _0804B0DA - adds r0, r2, 0 - bl DestroySprite -_0804B0DA: - pop {r0} - bx r0 - thumb_func_end sub_804B0BC - - thumb_func_start sub_804B0E0 -sub_804B0E0: @ 804B0E0 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - adds r1, 0x1 - strh r1, [r2, 0x2E] - ldrh r0, [r2, 0x26] - subs r0, 0x1 - strh r0, [r2, 0x26] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0xA - bne _0804B0FE - adds r0, r2, 0 - bl DestroySprite -_0804B0FE: - pop {r0} - bx r0 - thumb_func_end sub_804B0E0 - - thumb_func_start sub_804B104 -sub_804B104: @ 804B104 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bne _0804B120 - movs r0, 0xCC - bl audio_play - movs r0, 0 - strh r0, [r4, 0x2E] -_0804B120: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804B104 - - thumb_func_start sub_804B128 -sub_804B128: @ 804B128 - push {r4,r5,lr} - sub sp, 0x20 - ldr r0, _0804B1B4 - ldr r0, [r0] - mov r12, r0 - movs r0, 0x82 - lsls r0, 1 - add r0, r12 - ldrh r1, [r0] - lsls r1, 8 - movs r0, 0x83 - lsls r0, 1 - add r0, r12 - ldrh r2, [r0] - lsls r2, 8 - movs r0, 0x86 - lsls r0, 1 - add r0, r12 - movs r4, 0 - ldrsh r3, [r0, r4] - movs r0, 0x87 - lsls r0, 1 - add r0, r12 - movs r5, 0 - ldrsh r0, [r0, r5] - str r0, [sp] - movs r4, 0x8C - lsls r4, 1 - add r4, r12 - movs r5, 0 - ldrsh r0, [r4, r5] - str r0, [sp, 0x4] - movs r5, 0 - ldrsh r0, [r4, r5] - str r0, [sp, 0x8] - movs r0, 0x8E - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - str r0, [sp, 0xC] - add r0, sp, 0x10 - bl sub_8040F34 - ldr r1, _0804B1B8 - add r0, sp, 0x10 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - add r0, sp, 0x10 - ldrh r0, [r0, 0x2] - strh r0, [r1] - adds r1, 0x2 - add r0, sp, 0x10 - ldrh r0, [r0, 0x4] - strh r0, [r1] - adds r1, 0x2 - add r0, sp, 0x10 - ldrh r0, [r0, 0x6] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [sp, 0x18] - str r0, [r1] - adds r1, 0x4 - ldr r0, [sp, 0x1C] - str r0, [r1] - add sp, 0x20 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804B1B4: .4byte 0x03004828 -_0804B1B8: .4byte 0x04000020 - thumb_func_end sub_804B128 - - thumb_func_start sub_804B1BC -sub_804B1BC: @ 804B1BC - push {lr} - ldr r1, _0804B1FC - ldr r0, _0804B200 - ldr r2, [r0] - movs r3, 0x88 - lsls r3, 1 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - movs r0, 0x80 - lsls r0, 19 - ldrh r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0804B208 - ldr r1, _0804B204 - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - b _0804B20C - .align 2, 0 -_0804B1FC: .4byte 0x04000016 -_0804B200: .4byte 0x03004828 -_0804B204: .4byte 0x0400001a -_0804B208: - bl sub_804B128 -_0804B20C: - pop {r0} - bx r0 - thumb_func_end sub_804B1BC - - thumb_func_start sub_804B210 -sub_804B210: @ 804B210 - push {lr} - bl sub_804B1BC - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_804B210 - - thumb_func_start sub_804B228 -sub_804B228: @ 804B228 - push {r4,lr} - ldr r4, _0804B248 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xB4 - movs r3, 0 - movs r0, 0 - strh r0, [r2] - adds r1, 0xB2 - strb r3, [r1] - ldr r0, [r4] - adds r0, 0xB3 - strb r3, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804B248: .4byte 0x03004828 - thumb_func_end sub_804B228 - - thumb_func_start sub_804B24C -sub_804B24C: @ 804B24C - push {r4,r5,lr} - ldr r1, _0804B270 - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0xB2 - adds r3, r2, 0 - adds r3, 0xB3 - ldrb r0, [r0] - adds r5, r1, 0 - ldrb r3, [r3] - cmp r0, r3 - bne _0804B274 - adds r1, r2, 0 - adds r1, 0xB4 - ldrh r0, [r1] - adds r0, 0x1 - b _0804B27A - .align 2, 0 -_0804B270: .4byte 0x03004828 -_0804B274: - adds r1, r2, 0 - adds r1, 0xB4 - movs r0, 0 -_0804B27A: - strh r0, [r1] - adds r4, r5, 0 - ldr r3, [r4] - adds r2, r3, 0 - adds r2, 0xB4 - ldrh r0, [r2] - cmp r0, 0xB4 - bls _0804B29C - movs r1, 0 - movs r0, 0 - strh r0, [r2] - adds r0, r3, 0 - adds r0, 0xB3 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xB2 - strb r1, [r0] -_0804B29C: - ldr r0, [r5] - adds r1, r0, 0 - adds r1, 0xB2 - ldrb r1, [r1] - adds r0, 0xB3 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_804B24C - - thumb_func_start sub_804B2B0 -sub_804B2B0: @ 804B2B0 - push {lr} - ldr r0, _0804B2C0 - ldrb r0, [r0] - cmp r0, 0 - bne _0804B2C4 - movs r0, 0 - b _0804B2CC - .align 2, 0 -_0804B2C0: .4byte 0x03002fa4 -_0804B2C4: - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 -_0804B2CC: - pop {r1} - bx r1 - thumb_func_end sub_804B2B0 - - thumb_func_start sub_804B2D0 -sub_804B2D0: @ 804B2D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r4, 0 - mov r10, r4 - cmp r7, 0 - bne _0804B2FC - ldr r0, _0804B324 - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0804B328 - adds r1, r0 - mov r10, r1 - movs r4, 0x1 -_0804B2FC: - cmp r7, 0x1 - bne _0804B31A - ldr r0, _0804B324 - ldrb r0, [r0, 0x1] - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _0804B32C - adds r1, r0 - mov r10, r1 - movs r4, 0x3 -_0804B31A: - cmp r5, 0 - beq _0804B330 - cmp r5, 0x1 - beq _0804B3A4 - b _0804B3FA - .align 2, 0 -_0804B324: .4byte 0x020297d8 -_0804B328: .4byte 0x03004360 -_0804B32C: .4byte 0x030045c0 -_0804B330: - mov r0, r10 - movs r1, 0x41 - bl PokemonGetField - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r0, r10 - movs r1, 0 - bl PokemonGetField - mov r9, r0 - lsls r0, r5, 3 - ldr r1, _0804B390 - adds r0, r1 - ldr r1, _0804B394 - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r3, _0804B398 - ldr r6, _0804B39C - lsls r7, 1 - mov r8, r7 - mov r4, r8 - adds r4, 0x1 - lsls r4, 2 - adds r4, r6 - ldr r4, [r4] - str r4, [sp] - str r5, [sp, 0x4] - mov r4, r9 - str r4, [sp, 0x8] - bl sub_800D334 - mov r0, r10 - bl sub_8040990 - bl LoadCompressedObjectPalette - ldr r0, _0804B3A0 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 1 - adds r0, r1 - add r0, r8 - strh r5, [r0] - b _0804B3FA - .align 2, 0 -_0804B390: .4byte gMonFrontPicTable -_0804B394: .4byte gMonFrontPicCoords -_0804B398: .4byte 0x02000000 -_0804B39C: .4byte gUnknown_081FAF4C -_0804B3A0: .4byte 0x03004828 -_0804B3A4: - mov r0, r10 - bl sub_8040990 - ldrh r0, [r0, 0x4] - adds r1, r4, 0 - bl gpu_pal_obj_decompress_and_apply - ldr r0, _0804B40C - movs r1, 0x78 - movs r2, 0x3C - movs r3, 0x6 - bl CreateSprite - ldr r4, _0804B410 - ldr r1, [r4] - adds r1, 0xB8 - adds r1, r7 - strb r0, [r1] - ldr r3, _0804B414 - ldr r0, [r4] - adds r0, 0xB8 - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xB8 - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, _0804B418 - str r1, [r0] -_0804B3FA: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804B40C: .4byte 0x02024e8c -_0804B410: .4byte 0x03004828 -_0804B414: .4byte 0x02020004 -_0804B418: .4byte SpriteCallbackDummy - thumb_func_end sub_804B2D0 - - thumb_func_start sub_804B41C -sub_804B41C: @ 804B41C - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, _0804B43C - ldr r2, _0804B440 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xC - bls _0804B430 - b _0804B76E -_0804B430: - lsls r0, 2 - ldr r1, _0804B444 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804B43C: .4byte 0x03001770 -_0804B440: .4byte 0x0000043c -_0804B444: .4byte _0804B448 - .align 2, 0 -_0804B448: - .4byte _0804B47C - .4byte _0804B5AC - .4byte _0804B5D4 - .4byte _0804B5FC - .4byte _0804B648 - .4byte _0804B678 - .4byte _0804B6A8 - .4byte _0804B6B2 - .4byte _0804B6CC - .4byte _0804B6E4 - .4byte _0804B71C - .4byte _0804B726 - .4byte _0804B75C -_0804B47C: - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - bl ResetTasks - bl CloseLink - ldr r6, _0804B570 - ldr r5, _0804B574 - str r5, [r6] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0804B578 - bl SetVBlankCallback - bl sub_804B228 - ldr r4, _0804B57C - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, [r6] - adds r0, 0x4 - adds r1, r4, 0 - bl InitWindowFromConfig - movs r0, 0x2 - bl sub_8064EF4 - ldr r1, [r6] - adds r1, 0x34 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x4 - bl sub_8064F08 - bl sub_8071EF4 - ldr r1, _0804B580 - ldr r4, _0804B584 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, _0804B588 - ldr r0, _0804B58C - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _0804B590 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _0804B594 - ldr r1, _0804B598 - adds r5, r1 - movs r2, 0x80 - lsls r2, 4 - adds r1, r5, 0 - bl CpuSet - ldr r1, _0804B59C - ldr r0, _0804B5A0 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _0804B5A4 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _0804B5A8 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xB6 - movs r2, 0 - strh r2, [r0] - adds r0, 0xE - strh r2, [r0] - movs r4, 0x8F - lsls r4, 1 - adds r1, r4 - movs r0, 0x1 - strb r0, [r1] - ldr r3, [r6] - movs r1, 0x82 - lsls r1, 1 - adds r0, r3, r1 - movs r1, 0x40 - strh r1, [r0] - subs r4, 0x18 - adds r0, r3, r4 - strh r1, [r0] - adds r1, 0xC8 - adds r0, r3, r1 - strh r2, [r0] - adds r4, 0x4 - adds r0, r3, r4 - strh r2, [r0] - movs r0, 0x86 - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0x78 - strh r0, [r1] - adds r4, 0x4 - adds r1, r3, r4 - movs r0, 0x50 - strh r0, [r1] - adds r0, 0xC8 - adds r1, r3, r0 - subs r0, 0x18 - strh r0, [r1] - movs r1, 0x8E - lsls r1, 1 - adds r0, r3, r1 - strh r2, [r0] - b _0804B76E - .align 2, 0 -_0804B570: .4byte 0x03004828 -_0804B574: .4byte 0x0201f000 -_0804B578: .4byte sub_804B210 -_0804B57C: .4byte gWindowConfig_81E6F84 -_0804B580: .4byte 0x03002b74 -_0804B584: .4byte 0x00001144 -_0804B588: .4byte 0x03001770 -_0804B58C: .4byte 0x0000043c -_0804B590: .4byte gUnknown_08D00000 -_0804B594: .4byte gUnknown_08D00524 -_0804B598: .4byte 0xfffe1000 -_0804B59C: .4byte 0x06002800 -_0804B5A0: .4byte 0x040000d4 -_0804B5A4: .4byte 0x80000280 -_0804B5A8: .4byte gUnknown_08D004E0 -_0804B5AC: - bl OpenLink - ldr r1, _0804B5C8 - ldr r2, _0804B5CC - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, _0804B5D0 - ldr r0, [r0] - adds r0, 0xC0 - str r2, [r0] - b _0804B76E - .align 2, 0 -_0804B5C8: .4byte 0x03001770 -_0804B5CC: .4byte 0x0000043c -_0804B5D0: .4byte 0x03004828 -_0804B5D4: - ldr r0, _0804B5F4 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bhi _0804B5E8 - b _0804B76E -_0804B5E8: - movs r0, 0 - str r0, [r1] - ldr r4, _0804B5F8 - adds r1, r2, r4 - b _0804B74C - .align 2, 0 -_0804B5F4: .4byte 0x03004828 -_0804B5F8: .4byte 0x0000043c -_0804B5FC: - bl IsLinkMaster - lsls r0, 24 - cmp r0, 0 - bne _0804B608 - b _0804B746 -_0804B608: - bl GetLinkPlayerCount_2 - adds r4, r0, 0 - bl sub_800820C - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcs _0804B61C - b _0804B76E -_0804B61C: - ldr r0, _0804B63C - ldr r1, [r0] - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x1E - bhi _0804B62E - b _0804B76E -_0804B62E: - bl sub_8007F4C - ldr r1, _0804B640 - ldr r0, _0804B644 - adds r1, r0 - b _0804B74C - .align 2, 0 -_0804B63C: .4byte 0x03004828 -_0804B640: .4byte 0x03001770 -_0804B644: .4byte 0x0000043c -_0804B648: - bl sub_804B24C - ldr r0, _0804B66C - ldrb r0, [r0] - cmp r0, 0x1 - beq _0804B656 - b _0804B76E -_0804B656: - bl IsLinkPlayerDataExchangeComplete - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0804B664 - b _0804B76E -_0804B664: - ldr r1, _0804B670 - ldr r4, _0804B674 - adds r1, r4 - b _0804B74C - .align 2, 0 -_0804B66C: .4byte 0x03002fa4 -_0804B670: .4byte 0x03001770 -_0804B674: .4byte 0x0000043c -_0804B678: - ldr r2, _0804B69C - ldr r0, [r2] - adds r0, 0x9C - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x9D - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xBD - strb r1, [r0] - movs r0, 0 - bl sub_804B2D0 - ldr r1, _0804B6A0 - ldr r0, _0804B6A4 - adds r1, r0 - b _0804B74C - .align 2, 0 -_0804B69C: .4byte 0x03004828 -_0804B6A0: .4byte 0x03001770 -_0804B6A4: .4byte 0x0000043c -_0804B6A8: - movs r0, 0 - movs r1, 0x1 - bl sub_804B2D0 - b _0804B746 -_0804B6B2: - movs r0, 0x1 - movs r1, 0 - bl sub_804B2D0 - ldr r1, _0804B6C4 - ldr r4, _0804B6C8 - adds r1, r4 - b _0804B74C - .align 2, 0 -_0804B6C4: .4byte 0x03001770 -_0804B6C8: .4byte 0x0000043c -_0804B6CC: - movs r0, 0x1 - movs r1, 0x1 - bl sub_804B2D0 - ldr r1, _0804B6DC - ldr r0, _0804B6E0 - adds r1, r0 - b _0804B74C - .align 2, 0 -_0804B6DC: .4byte 0x03001770 -_0804B6E0: .4byte 0x0000043c -_0804B6E4: - bl sub_804C164 - ldr r0, _0804B704 - bl LoadSpriteSheet - ldr r0, _0804B708 - bl LoadSpritePalette - ldr r1, _0804B70C - ldr r2, _0804B710 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0804B714 - ldr r4, _0804B718 - adds r1, r4 - b _0804B74C - .align 2, 0 -_0804B704: .4byte gUnknown_0821594C -_0804B708: .4byte gUnknown_08215954 -_0804B70C: .4byte 0x0400000a -_0804B710: .4byte 0x00000502 -_0804B714: .4byte 0x03001770 -_0804B718: .4byte 0x0000043c -_0804B71C: - ldr r0, _0804B754 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0804B726: - movs r0, 0x5 - bl sub_804BBE8 - movs r0, 0 - bl sub_804BBE8 - bl sub_804C1A8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0804B746: - ldr r1, _0804B758 - ldr r2, _0804B754 - adds r1, r2 -_0804B74C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804B76E - .align 2, 0 -_0804B754: .4byte 0x0000043c -_0804B758: .4byte 0x03001770 -_0804B75C: - ldr r0, _0804B788 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804B76E - ldr r0, _0804B78C - bl SetMainCallback2 -_0804B76E: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804B788: .4byte 0x0202f388 -_0804B78C: .4byte sub_804DB84 - thumb_func_end sub_804B41C - - thumb_func_start sub_804B790 -sub_804B790: @ 804B790 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - ldr r1, _0804B7B4 - ldr r2, _0804B7B8 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xC - bls _0804B7A8 - b _0804B9F2 -_0804B7A8: - lsls r0, 2 - ldr r1, _0804B7BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804B7B4: .4byte 0x03001770 -_0804B7B8: .4byte 0x0000043c -_0804B7BC: .4byte _0804B7C0 - .align 2, 0 -_0804B7C0: - .4byte _0804B7F4 - .4byte _0804B9F2 - .4byte _0804B9F2 - .4byte _0804B9F2 - .4byte _0804B9F2 - .4byte _0804B914 - .4byte _0804B92C - .4byte _0804B944 - .4byte _0804B94E - .4byte _0804B968 - .4byte _0804B9A0 - .4byte _0804B9AA - .4byte _0804B9E0 -_0804B7F4: - ldr r1, _0804B8E0 - ldr r0, _0804B8E4 - ldrh r0, [r0] - movs r6, 0 - strb r0, [r1] - movs r0, 0x6 - strb r0, [r1, 0x1] - ldr r4, _0804B8E8 - ldr r1, _0804B8EC - adds r0, r4, 0 - bl StringCopy - ldr r0, _0804B8F0 - movs r1, 0x7 - add r2, sp, 0x4 - bl PokemonGetField - adds r4, 0x1C - adds r0, r4, 0 - add r1, sp, 0x4 - bl StringCopy - movs r0, 0x80 - lsls r0, 19 - movs r3, 0 - mov r8, r3 - strh r6, [r0] - bl ResetTasks - ldr r5, _0804B8F4 - ldr r0, _0804B8F8 - str r0, [r5] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0804B8FC - bl SetVBlankCallback - bl sub_804B228 - ldr r4, _0804B900 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, [r5] - adds r0, 0x4 - adds r1, r4, 0 - bl InitWindowFromConfig - movs r0, 0x2 - bl sub_8064EF4 - ldr r1, [r5] - adds r1, 0x34 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0x4 - bl sub_8064F08 - bl sub_8071EF4 - ldr r1, _0804B904 - ldr r2, _0804B908 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, [r5] - movs r3, 0x8F - lsls r3, 1 - adds r0, r3 - mov r1, r8 - strb r1, [r0] - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0xB6 - strh r6, [r0] - adds r0, 0xE - strh r6, [r0] - subs r3, 0x1A - adds r0, r2, r3 - movs r1, 0x40 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - adds r1, 0xC8 - adds r0, r2, r1 - strh r6, [r0] - adds r3, 0x4 - adds r0, r2, r3 - strh r6, [r0] - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0x78 - strh r0, [r1] - adds r3, 0x4 - adds r1, r2, r3 - movs r0, 0x50 - strh r0, [r1] - adds r0, 0xC8 - adds r1, r2, r0 - subs r0, 0x18 - strh r0, [r1] - movs r1, 0x8E - lsls r1, 1 - adds r0, r2, r1 - strh r6, [r0] - adds r0, r2, 0 - adds r0, 0xC0 - str r6, [r0] - ldr r0, _0804B90C - ldr r2, _0804B910 - adds r0, r2 - movs r1, 0x5 - strb r1, [r0] - b _0804B9F2 - .align 2, 0 -_0804B8E0: .4byte 0x020297d8 -_0804B8E4: .4byte 0x0202e8ce -_0804B8E8: .4byte 0x03002978 -_0804B8EC: .4byte 0x02024ea4 -_0804B8F0: .4byte 0x030045c0 -_0804B8F4: .4byte 0x03004828 -_0804B8F8: .4byte 0x0201f000 -_0804B8FC: .4byte sub_804B210 -_0804B900: .4byte gWindowConfig_81E717C -_0804B904: .4byte 0x03002b74 -_0804B908: .4byte 0x00001144 -_0804B90C: .4byte 0x03001770 -_0804B910: .4byte 0x0000043c -_0804B914: - movs r0, 0 - movs r1, 0 - bl sub_804B2D0 - ldr r1, _0804B924 - ldr r3, _0804B928 - adds r1, r3 - b _0804B9D0 - .align 2, 0 -_0804B924: .4byte 0x03001770 -_0804B928: .4byte 0x0000043c -_0804B92C: - movs r0, 0 - movs r1, 0x1 - bl sub_804B2D0 - ldr r1, _0804B93C - ldr r0, _0804B940 - adds r1, r0 - b _0804B9D0 - .align 2, 0 -_0804B93C: .4byte 0x03001770 -_0804B940: .4byte 0x0000043c -_0804B944: - movs r0, 0x1 - movs r1, 0 - bl sub_804B2D0 - b _0804B9CA -_0804B94E: - movs r0, 0x1 - movs r1, 0x1 - bl sub_804B2D0 - ldr r1, _0804B960 - ldr r3, _0804B964 - adds r1, r3 - b _0804B9D0 - .align 2, 0 -_0804B960: .4byte 0x03001770 -_0804B964: .4byte 0x0000043c -_0804B968: - bl sub_804C164 - ldr r0, _0804B988 - bl LoadSpriteSheet - ldr r0, _0804B98C - bl LoadSpritePalette - ldr r1, _0804B990 - ldr r2, _0804B994 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0804B998 - ldr r3, _0804B99C - adds r1, r3 - b _0804B9D0 - .align 2, 0 -_0804B988: .4byte gUnknown_0821594C -_0804B98C: .4byte gUnknown_08215954 -_0804B990: .4byte 0x0400000a -_0804B994: .4byte 0x00000502 -_0804B998: .4byte 0x03001770 -_0804B99C: .4byte 0x0000043c -_0804B9A0: - ldr r0, _0804B9D8 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0804B9AA: - movs r0, 0x5 - bl sub_804BBE8 - movs r0, 0 - bl sub_804BBE8 - bl sub_804C1A8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0804B9CA: - ldr r1, _0804B9DC - ldr r2, _0804B9D8 - adds r1, r2 -_0804B9D0: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804B9F2 - .align 2, 0 -_0804B9D8: .4byte 0x0000043c -_0804B9DC: .4byte 0x03001770 -_0804B9E0: - ldr r0, _0804BA10 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804B9F2 - ldr r0, _0804BA14 - bl SetMainCallback2 -_0804B9F2: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804BA10: .4byte 0x0202f388 -_0804BA14: .4byte sub_804BBCC - thumb_func_end sub_804B790 - - thumb_func_start sub_804BA18 -sub_804BA18: @ 804BA18 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _0804BA60 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl PokemonGetField - cmp r0, 0 - bne _0804BA5A - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8090D90 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8090D90 -_0804BA5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804BA60: .4byte 0x03004360 - thumb_func_end sub_804BA18 - - thumb_func_start sub_804BA64 -sub_804BA64: @ 804BA64 - push {lr} - bl GetMultiplayerId - lsls r0, 24 - ldr r2, _0804BA90 - movs r1, 0x80 - lsls r1, 17 - eors r1, r0 - lsrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2] - movs r0, 0x80 - lsls r0, 8 - cmp r1, r0 - bne _0804BA8C - bl sub_80690F0 -_0804BA8C: - pop {r0} - bx r0 - .align 2, 0 -_0804BA90: .4byte 0x03002970 - thumb_func_end sub_804BA64 - - thumb_func_start sub_804BA94 -sub_804BA94: @ 804BA94 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - movs r5, 0x64 - mov r1, r9 - muls r1, r5 - ldr r0, _0804BB60 - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x40 - bl PokemonGetField - lsls r0, 16 - lsrs r6, r0, 16 - adds r1, r4, 0 - muls r1, r5 - ldr r0, _0804BB64 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x40 - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r6, 0xFF - beq _0804BAE8 - lsls r0, r6, 3 - adds r0, r6 - lsls r0, 2 - ldr r1, _0804BB68 - adds r0, r1 - bl sub_80A2B40 -_0804BAE8: - ldr r4, _0804BB6C - ldr r0, [r4] - adds r0, 0x38 - adds r1, r7, 0 - movs r2, 0x64 - bl memcpy - adds r0, r7, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - ldr r1, [r4] - adds r1, 0x38 - adds r0, r5, 0 - movs r2, 0x64 - bl memcpy - movs r1, 0x46 - mov r0, sp - strb r1, [r0] - adds r0, r7, 0 - movs r1, 0x2D - bl PokemonGetField - cmp r0, 0 - bne _0804BB28 - adds r0, r7, 0 - movs r1, 0x20 - mov r2, sp - bl pokemon_setattr -_0804BB28: - mov r0, r8 - cmp r0, 0xFF - beq _0804BB3E - lsls r1, r0, 3 - add r1, r8 - lsls r1, 2 - ldr r0, _0804BB70 - adds r1, r0 - adds r0, r7, 0 - bl sub_80A2D88 -_0804BB3E: - mov r0, r9 - bl sub_804BA18 - ldr r0, _0804BB74 - ldrb r0, [r0] - cmp r0, 0 - beq _0804BB50 - bl sub_804BA64 -_0804BB50: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804BB60: .4byte 0x03004360 -_0804BB64: .4byte 0x030045c0 -_0804BB68: .4byte 0x02028280 -_0804BB6C: .4byte 0x03004828 -_0804BB70: .4byte 0x02029700 -_0804BB74: .4byte 0x03002fa4 - thumb_func_end sub_804BA94 - - thumb_func_start sub_804BB78 -sub_804BB78: @ 804BB78 - push {r4,lr} - ldr r4, _0804BB8C - ldr r0, [r4] - adds r0, 0xBD - ldrb r0, [r0] - cmp r0, 0x1 - beq _0804BB90 - cmp r0, 0x2 - beq _0804BBB6 - b _0804BBC0 - .align 2, 0 -_0804BB8C: .4byte 0x03004828 -_0804BB90: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _0804BBB6 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x9E - movs r2, 0x14 - bl SendBlock - ldr r1, [r4] - adds r1, 0xBD - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0804BBB6: - ldr r0, _0804BBC8 - ldr r0, [r0] - adds r0, 0xBD - movs r1, 0 - strb r1, [r0] -_0804BBC0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804BBC8: .4byte 0x03004828 - thumb_func_end sub_804BB78 - - thumb_func_start sub_804BBCC -sub_804BBCC: @ 804BBCC - push {lr} - bl sub_804C29C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_804BBCC - - thumb_func_start sub_804BBE8 -sub_804BBE8: @ 804BBE8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bls _0804BBF4 - b _0804C0CA -_0804BBF4: - lsls r0, 2 - ldr r1, _0804BC00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804BC00: .4byte _0804BC04 - .align 2, 0 -_0804BC04: - .4byte _0804BC24 - .4byte _0804BCC4 - .4byte _0804BD5C - .4byte _0804BDA4 - .4byte _0804BE48 - .4byte _0804BEF8 - .4byte _0804BFA0 - .4byte _0804C060 -_0804BC24: - ldr r0, _0804BCA0 - movs r1, 0x10 - movs r2, 0xA0 - bl LoadPalette - ldr r3, _0804BCA4 - ldr r4, _0804BCA8 - movs r5, 0x98 - lsls r5, 5 - ldr r1, _0804BCAC - ldr r6, _0804BCB0 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_0804BC42: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _0804BC42 - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _0804BCB4 - ldr r2, _0804BCB8 - ldr r0, _0804BCAC - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0804BCB0 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _0804BCBC - ldr r2, [r0] - movs r0, 0x8A - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - strh r0, [r1] - movs r3, 0x8B - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0xB4 - strh r0, [r1] - movs r1, 0x80 - lsls r1, 19 - movs r4, 0xBA - lsls r4, 5 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0xC - ldr r2, _0804BCC0 - adds r0, r2, 0 - strh r0, [r1] - b _0804C0CA - .align 2, 0 -_0804BCA0: .4byte gUnknown_0820C9F8 -_0804BCA4: .4byte gUnknown_0820CA98 -_0804BCA8: .4byte 0x06004000 -_0804BCAC: .4byte 0x040000d4 -_0804BCB0: .4byte 0x80000800 -_0804BCB4: .4byte gUnknown_0820F798 -_0804BCB8: .4byte 0x06009000 -_0804BCBC: .4byte 0x03004828 -_0804BCC0: .4byte 0x00005206 -_0804BCC4: - ldr r0, _0804BD3C - ldr r2, [r0] - movs r3, 0x89 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1] - movs r4, 0x88 - lsls r4, 1 - adds r0, r2, r4 - movs r1, 0xAE - lsls r1, 1 - strh r1, [r0] - ldr r0, _0804BD40 - strh r1, [r0] - ldr r1, _0804BD44 - ldr r2, _0804BD48 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0804BD4C - ldr r2, _0804BD50 - movs r3, 0x80 - lsls r3, 5 - adds r1, 0xCA - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r4, [r1, 0x8] - ldr r4, _0804BD54 - movs r5, 0xC0 - lsls r5, 19 - movs r6, 0x98 - lsls r6, 5 - adds r7, r0, 0 -_0804BD10: - str r4, [r1] - str r5, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, r3 - adds r5, r3 - subs r6, r3 - cmp r6, r3 - bhi _0804BD10 - str r4, [r1] - str r5, [r1, 0x4] - lsrs r0, r6, 1 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0x80 - lsls r1, 19 - ldr r3, _0804BD58 - adds r0, r3, 0 - strh r0, [r1] - b _0804C0CA - .align 2, 0 -_0804BD3C: .4byte 0x03004828 -_0804BD40: .4byte 0x04000016 -_0804BD44: .4byte 0x0400000a -_0804BD48: .4byte 0x00008502 -_0804BD4C: .4byte gUnknown_08210798 -_0804BD50: .4byte 0x06002800 -_0804BD54: .4byte gUnknown_0820CA98 -_0804BD58: .4byte 0x00001241 -_0804BD5C: - ldr r0, _0804BD8C - ldr r2, [r0] - movs r4, 0x88 - lsls r4, 1 - adds r0, r2, r4 - movs r1, 0 - strh r1, [r0] - movs r3, 0x89 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - movs r1, 0x80 - lsls r1, 19 - ldr r4, _0804BD90 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, _0804BD94 - ldr r2, _0804BD98 - ldr r0, _0804BD9C - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0804BDA0 - b _0804C0C6 - .align 2, 0 -_0804BD8C: .4byte 0x03004828 -_0804BD90: .4byte 0x00001241 -_0804BD94: .4byte gUnknown_08211798 -_0804BD98: .4byte 0x06002800 -_0804BD9C: .4byte 0x040000d4 -_0804BDA0: .4byte 0x80000400 -_0804BDA4: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x92 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0804BE24 - ldr r3, [r0] - movs r4, 0x82 - lsls r4, 1 - adds r1, r3, r4 - movs r2, 0 - movs r0, 0x40 - strh r0, [r1] - adds r4, 0x2 - adds r1, r3, r4 - strh r0, [r1] - adds r0, 0xCC - adds r1, r3, r0 - movs r0, 0x78 - strh r0, [r1] - adds r4, 0x8 - adds r1, r3, r4 - ldr r0, _0804BE28 - strh r0, [r1] - movs r1, 0x8E - lsls r1, 1 - adds r0, r3, r1 - strh r2, [r0] - ldr r3, _0804BE2C - ldr r4, _0804BE30 - movs r5, 0xD0 - lsls r5, 5 - ldr r2, _0804BE34 - mov r12, r2 - ldr r1, _0804BE38 - ldr r6, _0804BE3C - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_0804BDF6: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _0804BDF6 - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _0804BE40 - ldr r0, _0804BE38 - mov r3, r12 - str r3, [r0] - str r1, [r0, 0x4] - ldr r1, _0804BE44 - b _0804C0C6 - .align 2, 0 -_0804BE24: .4byte 0x03004828 -_0804BE28: .4byte 0x0000ffba -_0804BE2C: .4byte gUnknown_0820DD98 -_0804BE30: .4byte 0x06004000 -_0804BE34: .4byte gUnknown_08211F98 -_0804BE38: .4byte 0x040000d4 -_0804BE3C: .4byte 0x80000800 -_0804BE40: .4byte 0x06009000 -_0804BE44: .4byte 0x80000080 -_0804BE48: - movs r1, 0x80 - lsls r1, 19 - ldr r4, _0804BED0 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0xC - ldr r2, _0804BED4 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0804BED8 - ldr r3, [r0] - movs r4, 0x82 - lsls r4, 1 - adds r1, r3, r4 - movs r2, 0 - movs r0, 0x40 - strh r0, [r1] - adds r0, 0xC6 - adds r1, r3, r0 - movs r0, 0x5C - strh r0, [r1] - adds r4, 0x14 - adds r1, r3, r4 - movs r0, 0x20 - strh r0, [r1] - adds r0, 0xFA - adds r1, r3, r0 - movs r0, 0x80 - lsls r0, 3 - strh r0, [r1] - movs r1, 0x8E - lsls r1, 1 - adds r0, r3, r1 - strh r2, [r0] - ldr r3, _0804BEDC - ldr r4, _0804BEE0 - movs r5, 0x81 - lsls r5, 6 - ldr r2, _0804BEE4 - mov r12, r2 - ldr r1, _0804BEE8 - ldr r6, _0804BEEC - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_0804BEA4: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _0804BEA4 - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _0804BEF0 - ldr r0, _0804BEE8 - mov r3, r12 - str r3, [r0] - str r1, [r0, 0x4] - ldr r1, _0804BEF4 - b _0804C0C6 - .align 2, 0 -_0804BED0: .4byte 0x00001441 -_0804BED4: .4byte 0x00001287 -_0804BED8: .4byte 0x03004828 -_0804BEDC: .4byte gUnknown_08213738 -_0804BEE0: .4byte 0x06004000 -_0804BEE4: .4byte gUnknown_08215778 -_0804BEE8: .4byte 0x040000d4 -_0804BEEC: .4byte 0x80000800 -_0804BEF0: .4byte 0x06009000 -_0804BEF4: .4byte 0x80000080 -_0804BEF8: - ldr r0, _0804BF78 - ldr r2, [r0] - movs r4, 0x88 - lsls r4, 1 - adds r0, r2, r4 - movs r1, 0 - strh r1, [r0] - movs r3, 0x89 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _0804BF7C - ldr r4, _0804BF80 - adds r0, r4, 0 - strh r0, [r1] - ldr r0, _0804BF84 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _0804BF88 - ldr r4, _0804BF8C - movs r2, 0x80 - lsls r2, 4 - adds r1, r4, 0 - bl CpuSet - ldr r0, _0804BF90 - movs r1, 0x70 - movs r2, 0x20 - bl LoadCompressedPalette - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - movs r0, 0xE0 - lsls r0, 7 - adds r2, r0, 0 - movs r1, 0xA0 - lsls r1, 2 -_0804BF4C: - ldrh r0, [r4] - orrs r0, r2 - strh r0, [r4] - adds r4, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _0804BF4C - ldr r1, _0804BF8C - ldr r2, _0804BF94 - ldr r0, _0804BF98 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0804BF9C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl Reset - b _0804C0CA - .align 2, 0 -_0804BF78: .4byte 0x03004828 -_0804BF7C: .4byte 0x0400000a -_0804BF80: .4byte 0x00000502 -_0804BF84: .4byte gUnknown_08D00000 -_0804BF88: .4byte gUnknown_08D00524 -_0804BF8C: .4byte 0x02000000 -_0804BF90: .4byte gUnknown_08D004E0 -_0804BF94: .4byte 0x06002800 -_0804BF98: .4byte 0x040000d4 -_0804BF9C: .4byte 0x80000280 -_0804BFA0: - movs r1, 0x80 - lsls r1, 19 - ldr r2, _0804C038 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0xC - ldr r3, _0804C03C - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _0804C040 - ldr r3, [r0] - movs r4, 0x82 - lsls r4, 1 - adds r1, r3, r4 - movs r2, 0 - movs r0, 0x40 - strh r0, [r1] - adds r0, 0xC6 - adds r1, r3, r0 - movs r0, 0x5C - strh r0, [r1] - adds r4, 0x14 - adds r1, r3, r4 - adds r0, 0xA4 - strh r0, [r1] - adds r0, 0x1A - adds r1, r3, r0 - movs r0, 0x80 - strh r0, [r1] - subs r4, 0xC - adds r1, r3, r4 - movs r0, 0x78 - strh r0, [r1] - adds r0, 0x96 - adds r1, r3, r0 - movs r0, 0x50 - strh r0, [r1] - movs r1, 0x8E - lsls r1, 1 - adds r0, r3, r1 - strh r2, [r0] - ldr r3, _0804C044 - ldr r4, _0804C048 - movs r5, 0x81 - lsls r5, 6 - ldr r2, _0804C04C - mov r12, r2 - ldr r1, _0804C050 - ldr r6, _0804C054 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_0804C00A: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _0804C00A - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _0804C058 - ldr r0, _0804C050 - mov r3, r12 - str r3, [r0] - str r1, [r0, 0x4] - ldr r1, _0804C05C - b _0804C0C6 - .align 2, 0 -_0804C038: .4byte 0x00001441 -_0804C03C: .4byte 0x00001287 -_0804C040: .4byte 0x03004828 -_0804C044: .4byte gUnknown_08213738 -_0804C048: .4byte 0x06004000 -_0804C04C: .4byte gUnknown_08215778 -_0804C050: .4byte 0x040000d4 -_0804C054: .4byte 0x80000800 -_0804C058: .4byte 0x06009000 -_0804C05C: .4byte 0x80000080 -_0804C060: - ldr r0, _0804C0D0 - ldr r2, [r0] - movs r4, 0x8A - lsls r4, 1 - adds r0, r2, r4 - movs r1, 0 - strh r1, [r0] - movs r3, 0x8B - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _0804C0D4 - ldr r4, _0804C0D8 - adds r0, r4, 0 - strh r0, [r1] - ldr r0, _0804C0DC - movs r1, 0x10 - movs r2, 0xA0 - bl LoadPalette - ldr r3, _0804C0E0 - ldr r4, _0804C0E4 - movs r5, 0x98 - lsls r5, 5 - ldr r1, _0804C0E8 - ldr r6, _0804C0EC - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_0804C09C: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _0804C09C - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _0804C0F0 - ldr r2, _0804C0F4 - ldr r0, _0804C0E8 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0804C0EC -_0804C0C6: - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] -_0804C0CA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C0D0: .4byte 0x03004828 -_0804C0D4: .4byte 0x0400000c -_0804C0D8: .4byte 0x00005206 -_0804C0DC: .4byte gUnknown_0820C9F8 -_0804C0E0: .4byte gUnknown_0820CA98 -_0804C0E4: .4byte 0x06004000 -_0804C0E8: .4byte 0x040000d4 -_0804C0EC: .4byte 0x80000800 -_0804C0F0: .4byte gUnknown_0820F798 -_0804C0F4: .4byte 0x06009000 - thumb_func_end sub_804BBE8 - - thumb_func_start sub_804C0F8 -sub_804C0F8: @ 804C0F8 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0804C130 - ldr r0, _0804C128 - ldr r2, [r0] - movs r1, 0x88 - lsls r1, 1 - adds r0, r2, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - ldr r0, _0804C12C - cmp r1, r0 - bgt _0804C15A - adds r0, 0x5 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r3, 0x8E - lsls r3, 1 - adds r1, r2, r3 - b _0804C154 - .align 2, 0 -_0804C128: .4byte 0x03004828 -_0804C12C: .4byte 0x00000109 -_0804C130: - ldr r0, _0804C160 - ldr r0, [r0] - mov r12, r0 - movs r2, 0x87 - lsls r2, 1 - add r2, r12 - ldrh r3, [r2] - movs r0, 0 - ldrsh r1, [r2, r0] - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - ble _0804C15A - subs r0, r3, 0x1 - strh r0, [r2] - movs r1, 0x8E - lsls r1, 1 - add r1, r12 -_0804C154: - ldrh r0, [r1] - adds r0, 0x40 - strh r0, [r1] -_0804C15A: - pop {r0} - bx r0 - .align 2, 0 -_0804C160: .4byte 0x03004828 - thumb_func_end sub_804C0F8 - - thumb_func_start sub_804C164 -sub_804C164: @ 804C164 - push {lr} - ldr r0, _0804C190 - bl LoadSpriteSheet - ldr r0, _0804C194 - bl LoadSpriteSheet - ldr r0, _0804C198 - bl LoadSpriteSheet - ldr r0, _0804C19C - bl LoadSpriteSheet - ldr r0, _0804C1A0 - bl LoadSpritePalette - ldr r0, _0804C1A4 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_0804C190: .4byte gUnknown_082159A4 -_0804C194: .4byte gUnknown_082159F4 -_0804C198: .4byte gUnknown_08215A28 -_0804C19C: .4byte gUnknown_08215A78 -_0804C1A0: .4byte gUnknown_082159AC -_0804C1A4: .4byte gUnknown_082159B4 - thumb_func_end sub_804C164 - - thumb_func_start sub_804C1A8 -sub_804C1A8: @ 804C1A8 - push {r4,r5,lr} - sub sp, 0x14 - ldr r0, _0804C21C - ldr r0, [r0] - movs r1, 0x8F - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0804C23C - bl GetMultiplayerId - lsls r0, 24 - ldr r3, _0804C220 - movs r2, 0x80 - lsls r2, 17 - eors r2, r0 - lsrs r2, 24 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, _0804C224 - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - ldr r5, _0804C228 - ldrb r0, [r5, 0x1] - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x64 - muls r0, r4 - ldr r1, _0804C22C - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - ldr r0, _0804C230 - mov r1, sp - bl StringCopy10 - ldrb r0, [r5] - muls r0, r4 - ldr r1, _0804C234 - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - ldr r0, _0804C238 - mov r1, sp - bl StringCopy10 - b _0804C278 - .align 2, 0 -_0804C21C: .4byte 0x03004828 -_0804C220: .4byte 0x020231cc -_0804C224: .4byte 0x03002978 -_0804C228: .4byte 0x020297d8 -_0804C22C: .4byte 0x030045c0 -_0804C230: .4byte 0x020233cc -_0804C234: .4byte 0x03004360 -_0804C238: .4byte 0x020232cc -_0804C23C: - ldr r0, _0804C280 - ldrh r0, [r0] - lsls r4, r0, 4 - subs r4, r0 - lsls r4, 2 - ldr r0, _0804C284 - adds r4, r0 - ldr r0, _0804C288 - adds r1, r4, 0 - adds r1, 0x2B - bl StringCopy - ldr r0, _0804C28C - adds r1, r4, 0 - bl StringCopy10 - ldr r0, _0804C290 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0804C294 - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - ldr r0, _0804C298 - mov r1, sp - bl StringCopy10 -_0804C278: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804C280: .4byte 0x0202e8cc -_0804C284: .4byte gIngameTrades -_0804C288: .4byte 0x020231cc -_0804C28C: .4byte 0x020233cc -_0804C290: .4byte 0x0202e8ce -_0804C294: .4byte 0x03004360 -_0804C298: .4byte 0x020232cc - thumb_func_end sub_804C1A8 - - thumb_func_start sub_804C29C -sub_804C29C: @ 804C29C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r1, _0804C2C0 - ldr r0, [r1] - adds r0, 0xC4 - ldrh r0, [r0] - adds r6, r1, 0 - cmp r0, 0xC8 - bls _0804C2B6 - bl _0804D570 -_0804C2B6: - lsls r0, 2 - ldr r1, _0804C2C4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804C2C0: .4byte 0x03004828 -_0804C2C4: .4byte _0804C2C8 - .align 2, 0 -_0804C2C8: - .4byte _0804C5EC - .4byte _0804C66C - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804C6C8 - .4byte _0804C704 - .4byte _0804C79C - .4byte _0804D570 - .4byte _0804C824 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804C848 - .4byte _0804C868 - .4byte _0804C87A - .4byte _0804C89C - .4byte _0804C8F4 - .4byte _0804C92C - .4byte _0804C978 - .4byte _0804C9C8 - .4byte _0804CA1C - .4byte _0804CAB4 - .4byte _0804CAD8 - .4byte _0804CB24 - .4byte _0804CB70 - .4byte _0804CBCC - .4byte _0804CC2C - .4byte _0804CC40 - .4byte _0804CC54 - .4byte _0804CC68 - .4byte _0804CD94 - .4byte _0804CE64 - .4byte _0804CEEC - .4byte _0804CF68 - .4byte _0804CF78 - .4byte _0804CFA0 - .4byte _0804CFFC - .4byte _0804D028 - .4byte _0804D054 - .4byte _0804D06A - .4byte _0804D0D4 - .4byte _0804D570 - .4byte _0804D0FC - .4byte _0804D13C - .4byte _0804D182 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D1A4 - .4byte _0804D1C4 - .4byte _0804D1D2 - .4byte _0804D1F4 - .4byte _0804D2A8 - .4byte _0804D2E4 - .4byte _0804D314 - .4byte _0804D3C4 - .4byte _0804D41C - .4byte _0804D48C - .4byte _0804D4A0 - .4byte _0804D4A6 - .4byte _0804D4CC - .4byte _0804D528 - .4byte _0804D54C - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804D570 - .4byte _0804CA54 -_0804C5EC: - ldr r3, _0804C65C - ldr r0, [r6] - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r4, [r6] - adds r2, r4, 0 - adds r2, 0xB8 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _0804C660 - strh r1, [r0, 0x24] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldr r2, _0804C664 - movs r3, 0x90 - lsls r3, 1 - adds r0, r4, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r1, 0x26] - adds r1, r4, 0 - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - bl current_map_music_get - ldr r1, [r6] - movs r7, 0x92 - lsls r7, 1 - adds r1, r7 - strh r0, [r1] - ldr r0, _0804C668 - bl sub_8075474 - bl _0804D570 - .align 2, 0 -_0804C65C: .4byte 0x02020004 -_0804C660: .4byte 0x0000ff4c -_0804C664: .4byte gMonFrontPicCoords -_0804C668: .4byte 0x00000179 -_0804C66C: - ldr r4, [r6] - movs r0, 0x8B - lsls r0, 1 - adds r5, r4, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - ble _0804C6A0 - ldr r2, _0804C69C - adds r0, r4, 0 - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - adds r1, 0x3 - strh r1, [r0, 0x24] - ldrh r0, [r5] - subs r0, 0x3 - strh r0, [r5] - bl _0804D570 - .align 2, 0 -_0804C69C: .4byte 0x02020004 -_0804C6A0: - ldr r2, _0804C6C4 - adds r0, r4, 0 - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x24] - strh r1, [r5] - adds r1, r4, 0 - adds r1, 0xC4 - movs r0, 0xA - strh r0, [r1] - bl _0804D570 - .align 2, 0 -_0804C6C4: .4byte 0x02020004 -_0804C6C8: - ldr r5, _0804C6F8 - ldr r1, _0804C6FC - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r4, _0804C700 - ldr r1, [r4] - adds r0, r1, 0x4 - adds r1, 0x34 - ldrb r2, [r1] - movs r1, 0xF - str r1, [sp] - adds r1, r5, 0 - movs r3, 0x2 - bl sub_8003460 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xC4 - movs r3, 0 - movs r0, 0xB - bl _0804D40C - .align 2, 0 -_0804C6F8: .4byte 0x020234cc -_0804C6FC: .4byte gUnknown_0842C60B -_0804C700: .4byte 0x03004828 -_0804C704: - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x50 - beq _0804C718 - bl _0804D570 -_0804C718: - adds r0, r2, 0 - adds r0, 0xB8 - ldrb r0, [r0] - ldr r2, _0804C78C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0x14 - str r2, [sp, 0x8] - ldr r2, _0804C790 - str r2, [sp, 0xC] - movs r2, 0x78 - movs r3, 0x20 - bl sub_8047580 - ldr r1, [r6] - movs r2, 0x81 - lsls r2, 1 - adds r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r2, r0, 0 - adds r2, 0xC4 - ldrh r1, [r2] - adds r1, 0x1 - strh r1, [r2] - adds r0, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1D - bl ZeroFillWindowRect - ldr r4, _0804C794 - ldr r1, _0804C798 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, [r6] - adds r0, r1, 0x4 - adds r1, 0x34 - ldrb r2, [r1] - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x2 - bl sub_8003460 - bl _0804D570 - .align 2, 0 -_0804C78C: .4byte 0x02020004 -_0804C790: .4byte 0x000fffff -_0804C794: .4byte 0x020234cc -_0804C798: .4byte gUnknown_0842C622 -_0804C79C: - ldr r7, _0804C810 - ldr r2, [r6] - movs r5, 0x81 - lsls r5, 1 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r7, 0 - adds r4, 0x1C - adds r0, r4 - ldr r1, [r0] - ldr r0, _0804C814 - cmp r1, r0 - beq _0804C7C0 - bl _0804D570 -_0804C7C0: - adds r0, r2, 0x4 - bl sub_80035AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0804C7D2 - bl _0804D570 -_0804C7D2: - ldr r0, _0804C818 - movs r1, 0x78 - movs r2, 0x20 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - ldr r2, _0804C81C - adds r1, r2 - strb r0, [r1] - ldr r3, [r6] - adds r2, r3, r2 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0804C820 - str r1, [r0] - adds r3, r5 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - bl DestroySprite - ldr r1, [r6] - bl _0804D53C - .align 2, 0 -_0804C810: .4byte 0x02020004 -_0804C814: .4byte SpriteCallbackDummy -_0804C818: .4byte gSpriteTemplate_821595C -_0804C81C: .4byte 0x00000103 -_0804C820: .4byte sub_804D738 -_0804C824: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0804C844 - ldr r0, [r0] - adds r0, 0xC4 - movs r1, 0x14 - strh r1, [r0] - bl _0804D570 - .align 2, 0 -_0804C844: .4byte 0x03004828 -_0804C848: - ldr r0, _0804C864 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804C858 - bl _0804D570 -_0804C858: - movs r0, 0x4 - bl sub_804BBE8 - bl _0804D538 - .align 2, 0 -_0804C864: .4byte 0x0202f388 -_0804C868: - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl _0804D534 -_0804C87A: - ldr r0, _0804C898 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804C88A - bl _0804D570 -_0804C88A: - ldr r0, [r6] - adds r0, 0xC4 - movs r1, 0x17 - strh r1, [r0] - bl _0804D570 - .align 2, 0 -_0804C898: .4byte 0x0202f388 -_0804C89C: - ldr r4, _0804C8B8 - ldr r0, [r4] - movs r3, 0x8D - lsls r3, 1 - adds r2, r0, r3 - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bls _0804C8BC - adds r0, r1, 0 - subs r0, 0x34 - strh r0, [r2] - b _0804C8E0 - .align 2, 0 -_0804C8B8: .4byte 0x03004828 -_0804C8BC: - movs r0, 0x1 - bl sub_804BBE8 - ldr r3, [r4] - movs r7, 0x8D - lsls r7, 1 - adds r1, r3, r7 - movs r2, 0 - movs r0, 0x80 - strh r0, [r1] - adds r1, r3, 0 - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0xC0 - str r2, [r0] -_0804C8E0: - ldr r0, _0804C8F0 - ldr r4, [r0] - movs r1, 0x8D - lsls r1, 1 - adds r0, r4, r1 - bl _0804D16E - .align 2, 0 -_0804C8F0: .4byte 0x03004828 -_0804C8F4: - ldr r1, [r6] - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x14 - bhi _0804C906 - bl _0804D570 -_0804C906: - movs r0, 0x3 - bl sub_804BBE8 - bl sub_804B128 - ldr r0, _0804C928 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - adds r1, 0xBB - strb r0, [r1] - ldr r1, [r6] - bl _0804D53C - .align 2, 0 -_0804C928: .4byte gSpriteTemplate_8215A80 -_0804C92C: - ldr r2, _0804C96C - ldr r0, [r6] - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - blt _0804C94C - bl _0804D570 -_0804C94C: - adds r0, r1, 0 - bl DestroySprite - ldr r1, _0804C970 - movs r3, 0xC8 - lsls r3, 3 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r7, _0804C974 - adds r0, r7, 0 - strh r0, [r1] - ldr r1, [r6] - bl _0804D53C - .align 2, 0 -_0804C96C: .4byte 0x02020004 -_0804C970: .4byte 0x04000050 -_0804C974: .4byte 0x0000040c -_0804C978: - ldr r2, [r6] - movs r3, 0x88 - lsls r3, 1 - adds r0, r2, r3 - ldrh r1, [r0] - subs r1, 0x1 - strh r1, [r0] - lsls r1, 16 - movs r0, 0x9E - lsls r0, 17 - cmp r1, r0 - bne _0804C99A - adds r1, r2, 0 - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0804C99A: - ldr r0, [r6] - adds r0, r3 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - beq _0804C9AE - bl _0804D570 -_0804C9AE: - ldr r0, _0804C9C4 - movs r1, 0x80 - movs r2, 0x41 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - adds r1, 0xBC - strb r0, [r1] - bl _0804D570 - .align 2, 0 -_0804C9C4: .4byte gSpriteTemplate_8215A30 -_0804C9C8: - ldr r0, _0804CA0C - movs r1, 0x80 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - ldr r4, _0804CA10 - ldr r1, [r4] - adds r1, 0xBA - strb r0, [r1] - ldr r0, _0804CA14 - movs r1, 0x80 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - ldr r1, [r4] - adds r1, 0xBB - strb r0, [r1] - ldr r0, [r4] - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804CA18 - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - ldr r1, [r4] - bl _0804D53C - .align 2, 0 -_0804CA0C: .4byte gSpriteTemplate_82159BC -_0804CA10: .4byte 0x03004828 -_0804CA14: .4byte gSpriteTemplate_82159FC -_0804CA18: .4byte 0x02020004 -_0804CA1C: - ldr r2, [r6] - movs r3, 0x88 - lsls r3, 1 - adds r1, r2, r3 - ldrh r0, [r1] - subs r0, 0x2 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA6 - bne _0804CA3A - adds r1, r2, 0 - adds r1, 0xC4 - movs r0, 0xC8 - strh r0, [r1] -_0804CA3A: - movs r0, 0 - bl sub_804C0F8 - movs r1, 0x80 - lsls r1, 19 - ldr r7, _0804CA50 - adds r0, r7, 0 - strh r0, [r1] - bl _0804D570 - .align 2, 0 -_0804CA50: .4byte 0x00001641 -_0804CA54: - ldr r4, _0804CAB0 - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0xBA - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - subs r1, 0x2 - strh r1, [r0, 0x22] - adds r2, 0xBB - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - subs r1, 0x2 - strh r1, [r0, 0x22] - movs r0, 0 - bl sub_804C0F8 - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0xBA - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _0804CAA4 - bl _0804D570 -_0804CAA4: - adds r1, r2, 0 - adds r1, 0xC4 - movs r0, 0x1D - strh r0, [r1] - bl _0804D570 - .align 2, 0 -_0804CAB0: .4byte 0x02020004 -_0804CAB4: - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0804CAD4 - ldr r0, [r0] - adds r0, 0xC4 - movs r1, 0x1E - strh r1, [r0] - bl _0804D570 - .align 2, 0 -_0804CAD4: .4byte 0x03004828 -_0804CAD8: - ldr r0, _0804CB1C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804CAE8 - bl _0804D570 -_0804CAE8: - ldr r0, [r6] - adds r0, 0xBA - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804CB20 - adds r0, r4 - bl DestroySprite - ldr r0, [r6] - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - movs r0, 0x2 - bl sub_804BBE8 - ldr r1, [r6] - bl _0804D53C - .align 2, 0 -_0804CB1C: .4byte 0x0202f388 -_0804CB20: .4byte 0x02020004 -_0804CB24: - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r5, _0804CB68 - adds r0, r5, 0 - movs r1, 0x6F - movs r2, 0xAA - movs r3, 0 - bl CreateSprite - ldr r4, _0804CB6C - ldr r1, [r4] - adds r1, 0xBA - strb r0, [r1] - movs r2, 0xA - negs r2, r2 - adds r0, r5, 0 - movs r1, 0x81 - movs r3, 0 - bl CreateSprite - ldr r1, [r4] - adds r1, 0xBB - strb r0, [r1] - ldr r1, [r4] - bl _0804D53C - .align 2, 0 -_0804CB68: .4byte gSpriteTemplate_82159FC -_0804CB6C: .4byte 0x03004828 -_0804CB70: - ldr r0, _0804CBC0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804CB8E - movs r0, 0x2E - bl audio_play - ldr r0, _0804CBC4 - ldr r1, [r0] - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0804CB8E: - ldr r3, _0804CBC8 - ldr r0, _0804CBC4 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xBA - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - strh r1, [r0, 0x26] - adds r2, 0xBB - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - strh r1, [r0, 0x26] - bl _0804D570 - .align 2, 0 -_0804CBC0: .4byte 0x0202f388 -_0804CBC4: .4byte 0x03004828 -_0804CBC8: .4byte 0x02020004 -_0804CBCC: - ldr r5, _0804CC28 - ldr r4, [r6] - adds r2, r4, 0 - adds r2, 0xBA - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - strh r1, [r0, 0x26] - adds r6, r4, 0 - adds r6, 0xBB - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - strh r1, [r0, 0x26] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r5 - movs r7, 0x26 - ldrsh r1, [r3, r7] - movs r0, 0x5A - negs r0, r0 - cmp r1, r0 - ble _0804CC12 - bl _0804D570 -_0804CC12: - movs r2, 0x1 - strh r2, [r3, 0x30] - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x30] - adds r1, r4, 0 - bl _0804D53C - .align 2, 0 -_0804CC28: .4byte 0x02020004 -_0804CC2C: - ldr r2, _0804CC3C - movs r0, 0x1 - movs r1, 0x10 - bl BlendPalettes - bl _0804D538 - .align 2, 0 -_0804CC3C: .4byte 0x0000ffff -_0804CC40: - ldr r2, _0804CC50 - movs r0, 0x1 - movs r1, 0 - bl BlendPalettes - bl _0804D538 - .align 2, 0 -_0804CC50: .4byte 0x0000ffff -_0804CC54: - ldr r2, _0804CC64 - movs r0, 0x1 - movs r1, 0x10 - bl BlendPalettes - bl _0804D538 - .align 2, 0 -_0804CC64: .4byte 0x0000ffff -_0804CC68: - ldr r5, _0804CCD8 - ldr r0, [r5] - movs r1, 0x90 - lsls r1, 1 - adds r0, r1 - ldrh r0, [r0] - bl sub_8040A3C - lsls r0, 24 - cmp r0, 0 - bne _0804CCE4 - ldr r4, _0804CCDC - ldr r2, [r5] - adds r2, 0xB8 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x10 - adds r0, r1 - ldr r1, _0804CCE0 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - ldr r0, [r5] - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - ldr r0, [r5] - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0 - bl StartSpriteAffineAnim - b _0804CCFA - .align 2, 0 -_0804CCD8: .4byte 0x03004828 -_0804CCDC: .4byte 0x02020004 -_0804CCE0: .4byte gUnknown_08215AC0 -_0804CCE4: - ldr r0, [r5] - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804CD88 - adds r0, r1 - movs r1, 0 - bl StartSpriteAffineAnim -_0804CCFA: - ldr r5, _0804CD8C - ldr r0, [r5] - adds r0, 0xB9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804CD88 - adds r0, r4 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r2, [r5] - adds r3, r2, 0 - adds r3, 0xB8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x3C - strh r1, [r0, 0x20] - adds r2, 0xB9 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB4 - strh r1, [r0, 0x20] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xC0 - strh r1, [r0, 0x22] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0804CD90 - strh r1, [r0, 0x22] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0xB9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r1, [r5] - bl _0804D53C - .align 2, 0 -_0804CD88: .4byte 0x02020004 -_0804CD8C: .4byte 0x03004828 -_0804CD90: .4byte 0x0000ffe0 -_0804CD94: - ldr r4, _0804CE5C - ldr r2, [r6] - adds r3, r2, 0 - adds r3, 0xB8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - movs r5, 0 - strh r1, [r0, 0x26] - adds r2, 0xB9 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - strh r1, [r0, 0x26] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x26] - adds r0, 0xA3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0804CDDC - movs r0, 0x2D - bl audio_play -_0804CDDC: - ldr r2, [r6] - adds r3, r2, 0 - adds r3, 0xB8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r7, 0x26 - ldrsh r1, [r0, r7] - movs r0, 0xDE - negs r0, r0 - cmp r1, r0 - blt _0804CDFA - b _0804D570 -_0804CDFA: - adds r0, r2, 0 - adds r0, 0xBA - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r5, [r0, 0x30] - adds r0, r2, 0 - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r5, [r0, 0x30] - adds r1, r2, 0 - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - adds r0, 0xB9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r2, _0804CE60 - movs r0, 0x1 - movs r1, 0 - bl BlendPalettes - b _0804D570 - .align 2, 0 -_0804CE5C: .4byte 0x02020004 -_0804CE60: .4byte 0x0000ffff -_0804CE64: - ldr r4, _0804CEE8 - ldr r2, [r6] - adds r3, r2, 0 - adds r3, 0xBA - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - strh r1, [r0, 0x26] - adds r2, 0xBB - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - strh r1, [r0, 0x26] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0x26 - ldrsh r1, [r0, r2] - movs r0, 0xDE - negs r0, r0 - cmp r1, r0 - ble _0804CEA6 - b _0804D570 -_0804CEA6: - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0xC4 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0xBA - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r0, [r6] - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - b _0804D570 - .align 2, 0 -_0804CEE8: .4byte 0x02020004 -_0804CEEC: - ldr r0, _0804CF58 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804CEFA - b _0804D570 -_0804CEFA: - ldr r1, [r6] - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 - bl sub_804BBE8 - ldr r0, [r6] - movs r3, 0x88 - lsls r3, 1 - adds r0, r3 - movs r1, 0xA6 - strh r1, [r0] - ldr r0, _0804CF5C - movs r4, 0x14 - negs r4, r4 - movs r1, 0x80 - adds r2, r4, 0 - movs r3, 0x3 - bl CreateSprite - ldr r1, [r6] - adds r1, 0xBA - strb r0, [r1] - ldr r0, _0804CF60 - movs r1, 0x80 - adds r2, r4, 0 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - adds r1, 0xBB - strb r0, [r1] - ldr r0, [r6] - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804CF64 - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - b _0804D570 - .align 2, 0 -_0804CF58: .4byte 0x0202f388 -_0804CF5C: .4byte gSpriteTemplate_82159BC -_0804CF60: .4byte gSpriteTemplate_82159FC -_0804CF64: .4byte 0x02020004 -_0804CF68: - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - b _0804D534 -_0804CF78: - movs r1, 0x80 - lsls r1, 19 - ldr r7, _0804CF98 - adds r0, r7, 0 - strh r0, [r1] - movs r0, 0x1 - bl sub_804C0F8 - ldr r0, _0804CF9C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804CF96 - b _0804D570 -_0804CF96: - b _0804D538 - .align 2, 0 -_0804CF98: .4byte 0x00001641 -_0804CF9C: .4byte 0x0202f388 -_0804CFA0: - movs r0, 0x1 - bl sub_804C0F8 - ldr r2, _0804CFF4 - ldr r0, _0804CFF8 - ldr r3, [r0] - adds r4, r3, 0 - adds r4, 0xBA - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - strh r1, [r0, 0x26] - adds r0, r3, 0 - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - strh r1, [r0, 0x26] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0x26 - ldrsh r1, [r0, r2] - movs r7, 0x22 - ldrsh r0, [r0, r7] - adds r1, r0 - cmp r1, 0x40 - beq _0804CFEE - b _0804D570 -_0804CFEE: - adds r1, r3, 0 - b _0804D53C - .align 2, 0 -_0804CFF4: .4byte 0x02020004 -_0804CFF8: .4byte 0x03004828 -_0804CFFC: - movs r0, 0x1 - bl sub_804C0F8 - ldr r0, _0804D024 - ldr r1, [r0] - movs r0, 0x88 - lsls r0, 1 - adds r2, r1, r0 - ldrh r0, [r2] - adds r0, 0x2 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x9E - lsls r3, 1 - cmp r0, r3 - bgt _0804D020 - b _0804D570 -_0804D020: - strh r3, [r2] - b _0804D53C - .align 2, 0 -_0804D024: .4byte 0x03004828 -_0804D028: - ldr r0, [r6] - adds r0, 0xBA - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804D050 - adds r0, r4 - bl DestroySprite - ldr r0, [r6] - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - b _0804D400 - .align 2, 0 -_0804D050: .4byte 0x02020004 -_0804D054: - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0xA - beq _0804D066 - b _0804D570 -_0804D066: - adds r1, 0x4 - b _0804D53E -_0804D06A: - ldr r1, [r6] - movs r4, 0x88 - lsls r4, 1 - adds r2, r1, r4 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - movs r3, 0xAE - lsls r3, 1 - cmp r0, r3 - ble _0804D08E - strh r3, [r2] - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0804D08E: - ldr r0, [r6] - adds r0, r4 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - bne _0804D0B0 - ldr r0, _0804D0C8 - movs r1, 0x80 - movs r2, 0x41 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - adds r1, 0xBC - strb r0, [r1] -_0804D0B0: - ldr r2, _0804D0CC - ldr r0, [r6] - adds r0, 0xBC - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0804D0D0 - str r1, [r0] - b _0804D570 - .align 2, 0 -_0804D0C8: .4byte gSpriteTemplate_8215A30 -_0804D0CC: .4byte 0x02020004 -_0804D0D0: .4byte sub_804B0E0 -_0804D0D4: - ldr r0, _0804D0F4 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - ldr r2, _0804D0F8 - ldr r1, [r2] - adds r1, 0xBB - strb r0, [r1] - ldr r0, [r2] - adds r0, 0xC4 - movs r1, 0x32 - strh r1, [r0] - b _0804D570 - .align 2, 0 -_0804D0F4: .4byte gSpriteTemplate_8215A80 -_0804D0F8: .4byte 0x03004828 -_0804D0FC: - ldr r2, _0804D138 - ldr r0, [r6] - adds r0, 0xBB - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - blt _0804D11A - b _0804D570 -_0804D11A: - adds r0, r1, 0 - bl DestroySprite - movs r0, 0x6 - bl sub_804BBE8 - ldr r1, [r6] - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x9F - bl audio_play - b _0804D570 - .align 2, 0 -_0804D138: .4byte 0x02020004 -_0804D13C: - ldr r1, [r6] - movs r3, 0x8D - lsls r3, 1 - adds r2, r1, r3 - ldrh r3, [r2] - ldr r0, _0804D154 - cmp r3, r0 - bhi _0804D158 - adds r0, r3, 0 - adds r0, 0x34 - strh r0, [r2] - b _0804D166 - .align 2, 0 -_0804D154: .4byte 0x000003ff -_0804D158: - movs r0, 0x80 - lsls r0, 3 - strh r0, [r2] - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0804D166: - ldr r4, [r6] - movs r7, 0x8D - lsls r7, 1 - adds r0, r4, r7 -_0804D16E: - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - bl __divsi3 - movs r2, 0x8C - lsls r2, 1 - adds r1, r4, r2 - strh r0, [r1] - b _0804D570 -_0804D182: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0804D1A0 - ldr r0, [r0] - adds r0, 0xC4 - movs r1, 0x3C - strh r1, [r0] - b _0804D570 - .align 2, 0 -_0804D1A0: .4byte 0x03004828 -_0804D1A4: - ldr r0, _0804D1C0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804D1B2 - b _0804D570 -_0804D1B2: - movs r0, 0x5 - bl sub_804BBE8 - movs r0, 0x7 - bl sub_804BBE8 - b _0804D538 - .align 2, 0 -_0804D1C0: .4byte 0x0202f388 -_0804D1C4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - b _0804D534 -_0804D1D2: - movs r1, 0x80 - lsls r1, 19 - movs r3, 0xA2 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _0804D1F0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804D1EC - b _0804D570 -_0804D1EC: - ldr r1, [r6] - b _0804D53C - .align 2, 0 -_0804D1F0: .4byte 0x0202f388 -_0804D1F4: - ldr r0, _0804D290 - movs r2, 0x8 - negs r2, r2 - movs r1, 0x78 - movs r3, 0 - bl CreateSprite - ldr r6, _0804D294 - ldr r1, [r6] - ldr r5, _0804D298 - adds r1, r5 - movs r7, 0 - mov r8, r7 - strb r0, [r1] - ldr r4, _0804D29C - ldr r2, [r6] - adds r2, r5 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x4A - strh r1, [r0, 0x34] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0804D2A0 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - lsrs r1, 4 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - ldr r2, _0804D2A4 - movs r1, 0x10 - bl BlendPalettes - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0xC4 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0xC0 - mov r0, r8 - str r0, [r1] - b _0804D570 - .align 2, 0 -_0804D290: .4byte gSpriteTemplate_821595C -_0804D294: .4byte 0x03004828 -_0804D298: .4byte 0x00000103 -_0804D29C: .4byte 0x02020004 -_0804D2A0: .4byte sub_804D80C -_0804D2A4: .4byte 0x0000ffff -_0804D2A8: - ldr r2, _0804D2D8 - ldr r0, [r6] - ldr r1, _0804D2DC - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - lsrs r1, 4 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - ldr r1, _0804D2E0 - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r6] - b _0804D53C - .align 2, 0 -_0804D2D8: .4byte 0x02020004 -_0804D2DC: .4byte 0x00000103 -_0804D2E0: .4byte 0x0000ffff -_0804D2E4: - ldr r2, _0804D308 - ldr r3, [r6] - ldr r7, _0804D30C - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0804D310 - cmp r1, r0 - beq _0804D302 - b _0804D570 -_0804D302: - adds r1, r3, 0 - b _0804D53C - .align 2, 0 -_0804D308: .4byte 0x02020004 -_0804D30C: .4byte 0x00000103 -_0804D310: .4byte SpriteCallbackDummy -_0804D314: - ldr r4, _0804D3B4 - ldr r0, [r6] - mov r8, r0 - mov r5, r8 - adds r5, 0xB9 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldr r2, _0804D3B8 - movs r0, 0x91 - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - adds r0, 0x3C - strh r0, [r1, 0x22] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x24] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x26] - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0x14 - str r2, [sp, 0x8] - ldr r2, _0804D3BC - str r2, [sp, 0xC] - movs r2, 0x78 - movs r3, 0x54 - bl AddTextPrinterForMessage - ldr r0, [r6] - ldr r5, _0804D3C0 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FreeSpriteOamMatrix - ldr r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, [r6] - b _0804D53C - .align 2, 0 -_0804D3B4: .4byte 0x02020004 -_0804D3B8: .4byte gMonFrontPicCoords -_0804D3BC: .4byte 0x000fffff -_0804D3C0: .4byte 0x00000103 -_0804D3C4: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, [r6] - adds r0, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1D - bl ZeroFillWindowRect - ldr r4, _0804D414 - ldr r1, _0804D418 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, [r6] - adds r0, r1, 0x4 - adds r1, 0x34 - ldrb r2, [r1] - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x2 - bl sub_8003460 -_0804D400: - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0xC4 - ldrh r0, [r2] - adds r0, 0x1 - movs r3, 0 -_0804D40C: - strh r0, [r2] - adds r1, 0xC0 - str r3, [r1] - b _0804D570 - .align 2, 0 -_0804D414: .4byte 0x020234cc -_0804D418: .4byte gUnknown_0842C62F -_0804D41C: - ldr r1, [r6] - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x4 - bne _0804D430 - ldr r0, _0804D480 - bl fanfare_play -_0804D430: - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0xC0 - ldr r0, [r0] - cmp r0, 0xF0 - beq _0804D43E - b _0804D570 -_0804D43E: - adds r1, r2, 0 - adds r1, 0xC4 - ldrh r0, [r1] - adds r0, 0x1 - movs r5, 0 - strh r0, [r1] - adds r0, r2, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1D - bl ZeroFillWindowRect - ldr r4, _0804D484 - ldr r1, _0804D488 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, [r6] - adds r0, r1, 0x4 - adds r1, 0x34 - ldrb r2, [r1] - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x2 - bl sub_8003460 - ldr r0, [r6] - adds r0, 0xC0 - str r5, [r0] - b _0804D570 - .align 2, 0 -_0804D480: .4byte 0x00000173 -_0804D484: .4byte 0x020234cc -_0804D488: .4byte gUnknown_0842C640 -_0804D48C: - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bne _0804D570 - adds r1, 0x4 - b _0804D53E -_0804D4A0: - bl sub_804E1DC - b _0804D538 -_0804D4A6: - ldr r2, [r6] - movs r3, 0x8F - lsls r3, 1 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0804D4B8 - movs r0, 0x1 - b _0804D572 -_0804D4B8: - ldr r0, _0804D4C8 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804D570 - adds r1, r2, 0 - b _0804D53C - .align 2, 0 -_0804D4C8: .4byte 0x03001770 -_0804D4CC: - ldr r0, _0804D510 - ldrb r0, [r0] - movs r1, 0 - bl sub_804BA94 - ldr r1, _0804D514 - ldr r0, _0804D518 - str r0, [r1] - ldr r7, _0804D51C - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0804D520 - adds r0, r5 - movs r1, 0x1 - movs r2, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _0804D538 - ldrb r3, [r7] - adds r0, r3, 0 - muls r0, r6 - adds r0, r5 - ldr r1, _0804D524 - ldr r1, [r1] - adds r1, 0xB9 - ldrb r2, [r1] - adds r1, r4, 0 - bl sub_81120E4 - b _0804D538 - .align 2, 0 -_0804D510: .4byte 0x0202e8ce -_0804D514: .4byte 0x03005e94 -_0804D518: .4byte sub_804BBCC -_0804D51C: .4byte 0x020297d8 -_0804D520: .4byte 0x03004360 -_0804D524: .4byte 0x03004828 -_0804D528: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 -_0804D534: - bl BeginNormalPaletteFade -_0804D538: - ldr r0, _0804D548 - ldr r1, [r0] -_0804D53C: - adds r1, 0xC4 -_0804D53E: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0804D570 - .align 2, 0 -_0804D548: .4byte 0x03004828 -_0804D54C: - ldr r0, _0804D580 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804D570 - ldr r0, [r6] - movs r7, 0x92 - lsls r7, 1 - adds r0, r7 - ldrh r0, [r0] - bl sub_8075474 - ldr r0, _0804D584 - bl SetMainCallback2 - bl sub_804D8E4 -_0804D570: - movs r0, 0 -_0804D572: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804D580: .4byte 0x0202f388 -_0804D584: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_804C29C - - thumb_func_start sub_804D588 -sub_804D588: @ 804D588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0804D5A0 - ldr r2, _0804D5A4 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _0804D5A8 - cmp r0, 0x4 - beq _0804D5B8 - b _0804D614 - .align 2, 0 -_0804D5A0: .4byte 0x03001770 -_0804D5A4: .4byte 0x0000043c -_0804D5A8: - movs r0, 0x4 - strb r0, [r1] - ldr r1, _0804D5B4 - movs r0, 0x1 - b _0804D612 - .align 2, 0 -_0804D5B4: .4byte 0x03001bb4 -_0804D5B8: - ldr r0, _0804D5F4 - ldr r1, _0804D5F8 - mov r8, r1 - str r1, [r0] - ldr r7, _0804D5FC - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0804D600 - adds r0, r5 - movs r1, 0x1 - movs r2, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _0804D608 - ldrb r3, [r7] - adds r0, r3, 0 - muls r0, r6 - adds r0, r5 - ldr r1, _0804D604 - ldr r1, [r1] - adds r1, 0xB9 - ldrb r2, [r1] - adds r1, r4, 0 - bl sub_81120E4 - b _0804D60E - .align 2, 0 -_0804D5F4: .4byte 0x03005e94 -_0804D5F8: .4byte sub_804DC88 -_0804D5FC: .4byte 0x020297d8 -_0804D600: .4byte 0x03004360 -_0804D604: .4byte 0x03004828 -_0804D608: - mov r0, r8 - bl SetMainCallback2 -_0804D60E: - ldr r1, _0804D638 - movs r0, 0xFF -_0804D612: - strb r0, [r1] -_0804D614: - bl HasLinkErrorOccurred - lsls r0, 24 - cmp r0, 0 - bne _0804D622 - bl RunTasks -_0804D622: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D638: .4byte 0x020297d8 - thumb_func_end sub_804D588 - - thumb_func_start sub_804D63C -sub_804D63C: @ 804D63C - push {r4-r6,lr} - bl sub_804B2B0 - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0x1 - adds r0, r5, 0 - ands r0, r6 - cmp r0, 0 - beq _0804D67A - ldr r4, _0804D6A8 - ldrh r1, [r4] - ldr r0, _0804D6AC - cmp r1, r0 - bne _0804D664 - ldr r0, _0804D6B0 - bl SetMainCallback2 -_0804D664: - ldrh r1, [r4] - ldr r0, _0804D6B4 - cmp r1, r0 - bne _0804D674 - ldr r0, _0804D6B8 - ldr r0, [r0] - adds r0, 0x9C - strb r6, [r0] -_0804D674: - movs r0, 0 - bl ResetBlockReceivedFlag -_0804D67A: - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _0804D6A2 - ldr r0, _0804D6A8 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _0804D6B4 - cmp r1, r0 - bne _0804D69C - ldr r0, _0804D6B8 - ldr r0, [r0] - adds r0, 0x9D - movs r1, 0x1 - strb r1, [r0] -_0804D69C: - movs r0, 0x1 - bl ResetBlockReceivedFlag -_0804D6A2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804D6A8: .4byte 0x03002b80 -_0804D6AC: .4byte 0x0000dcba -_0804D6B0: .4byte sub_804D588 -_0804D6B4: .4byte 0x0000abcd -_0804D6B8: .4byte 0x03004828 - thumb_func_end sub_804D63C - - thumb_func_start sub_804D6BC -sub_804D6BC: @ 804D6BC - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - ldrh r4, [r5, 0x22] - adds r4, r0 - strh r4, [r5, 0x22] - ldrh r0, [r5, 0x30] - ldrh r2, [r5, 0x38] - adds r0, r2 - strh r0, [r5, 0x38] - movs r1, 0x38 - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r5, 0x20] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0x4C - ble _0804D70A - movs r0, 0x4C - strh r0, [r5, 0x22] - movs r2, 0x2E - ldrsh r1, [r5, r2] - movs r2, 0x32 - ldrsh r0, [r5, r2] - muls r0, r1 - negs r0, r0 - movs r1, 0x64 - bl __divsi3 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] -_0804D70A: - movs r1, 0x20 - ldrsh r0, [r5, r1] - cmp r0, 0x78 - bne _0804D716 - movs r0, 0 - strh r0, [r5, 0x30] -_0804D716: - ldrh r0, [r5, 0x36] - ldrh r2, [r5, 0x2E] - adds r0, r2 - strh r0, [r5, 0x2E] - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bne _0804D72E - movs r0, 0x1 - strh r0, [r5, 0x3C] - ldr r0, _0804D734 - str r0, [r5, 0x1C] -_0804D72E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804D734: .4byte SpriteCallbackDummy - thumb_func_end sub_804D6BC - - thumb_func_start sub_804D738 -sub_804D738: @ 804D738 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _0804D7A0 - movs r2, 0x2E - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x16 - bne _0804D760 - movs r0, 0x38 - bl audio_play -_0804D760: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2C - bne _0804D796 - movs r0, 0x8C - bl audio_play - ldr r0, _0804D7A4 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x2E] - ldrb r1, [r4, 0x5] - lsrs r1, 4 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - movs r1, 0x1 - negs r1, r1 - ldr r2, _0804D7A8 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0804D796: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804D7A0: .4byte gUnknown_08215BA0 -_0804D7A4: .4byte sub_804D7AC -_0804D7A8: .4byte 0x0000ffff - thumb_func_end sub_804D738 - - thumb_func_start sub_804D7AC -sub_804D7AC: @ 804D7AC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x14 - bne _0804D7C0 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_0804D7C0: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _0804D7FE - ldr r1, _0804D804 - movs r2, 0x2E - ldrsh r0, [r4, r2] - adds r0, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrh r0, [r4, 0x26] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - bne _0804D7FE - adds r0, r4, 0 - bl DestroySprite - ldr r0, _0804D808 - ldr r0, [r0] - adds r0, 0xC4 - movs r1, 0xE - strh r1, [r0] -_0804D7FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804D804: .4byte gUnknown_08215BA0 -_0804D808: .4byte 0x03004828 - thumb_func_end sub_804D7AC - - thumb_func_start sub_804D80C -sub_804D80C: @ 804D80C - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0804D83C - ldrh r0, [r4, 0x22] - adds r0, 0x4 - strh r0, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _0804D88C - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x16 - strh r0, [r4, 0x2E] - movs r0, 0x38 - bl audio_play - b _0804D88C -_0804D83C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x42 - bne _0804D84A - movs r0, 0x39 - bl audio_play -_0804D84A: - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x5C - bne _0804D858 - movs r0, 0x3A - bl audio_play -_0804D858: - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0x6B - bne _0804D866 - movs r0, 0x3B - bl audio_play -_0804D866: - ldr r1, _0804D894 - movs r2, 0x2E - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r3, [r4, 0x26] - adds r0, r3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6C - bne _0804D88C - ldr r0, _0804D898 - str r0, [r4, 0x1C] -_0804D88C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804D894: .4byte gUnknown_08215BA0 -_0804D898: .4byte SpriteCallbackDummy - thumb_func_end sub_804D80C - - thumb_func_start sub_804D89C -sub_804D89C: @ 804D89C - push {r4-r6,lr} - ldr r0, _0804D8D0 - ldrh r0, [r0] - lsls r4, r0, 4 - subs r4, r0 - lsls r4, 2 - ldr r0, _0804D8D4 - adds r4, r0 - ldr r0, _0804D8D8 - ldrh r1, [r4, 0x38] - movs r6, 0xB - muls r1, r6 - ldr r5, _0804D8DC - adds r1, r5 - bl StringCopy - ldr r0, _0804D8E0 - ldrh r1, [r4, 0xC] - muls r1, r6 - adds r1, r5 - bl StringCopy - ldrh r0, [r4, 0x38] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0804D8D0: .4byte 0x0202e8cc -_0804D8D4: .4byte gIngameTrades -_0804D8D8: .4byte 0x020231cc -_0804D8DC: .4byte gSpeciesNames -_0804D8E0: .4byte 0x020232cc - thumb_func_end sub_804D89C - - thumb_func_start sub_804D8E4 -sub_804D8E4: @ 804D8E4 - push {r4,lr} - sub sp, 0x20 - ldr r0, _0804D92C - ldrh r0, [r0] - lsls r4, r0, 4 - subs r4, r0 - lsls r4, 2 - ldr r0, _0804D930 - adds r4, r0 - ldr r0, _0804D934 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0804D938 - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl PokemonGetField - ldr r0, _0804D93C - mov r1, sp - bl StringCopy10 - ldr r0, _0804D940 - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, _0804D944 - adds r1, r2 - bl StringCopy - add sp, 0x20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804D92C: .4byte 0x0202e8cc -_0804D930: .4byte gIngameTrades -_0804D934: .4byte 0x0202e8ce -_0804D938: .4byte 0x03004360 -_0804D93C: .4byte 0x020231cc -_0804D940: .4byte 0x020232cc -_0804D944: .4byte gSpeciesNames - thumb_func_end sub_804D8E4 - - thumb_func_start sub_804D948 -sub_804D948: @ 804D948 - push {r4-r7,lr} - sub sp, 0x38 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r1, 4 - subs r2, r1 - lsls r2, 2 - ldr r1, _0804DAA4 - adds r5, r2, r1 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0804DAA8 - adds r0, r1 - movs r1, 0x38 - bl PokemonGetField - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - add r4, sp, 0x34 - movs r0, 0xFE - strb r0, [r4] - ldr r6, _0804DAAC - ldrh r1, [r5, 0xC] - movs r3, 0x1 - str r3, [sp] - ldr r0, [r5, 0x24] - str r0, [sp, 0x4] - str r3, [sp, 0x8] - ldr r0, [r5, 0x18] - str r0, [sp, 0xC] - adds r0, r6, 0 - movs r3, 0x20 - bl create_pokemon_set_level - adds r2, r5, 0 - adds r2, 0xE - adds r0, r6, 0 - movs r1, 0x27 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0xF - adds r0, r6, 0 - movs r1, 0x28 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x10 - adds r0, r6, 0 - movs r1, 0x29 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x11 - adds r0, r6, 0 - movs r1, 0x2A - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x12 - adds r0, r6, 0 - movs r1, 0x2B - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x13 - adds r0, r6, 0 - movs r1, 0x2C - bl pokemon_setattr - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x2B - adds r0, r6, 0 - movs r1, 0x7 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x36 - adds r0, r6, 0 - movs r1, 0x31 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x14 - adds r0, r6, 0 - movs r1, 0x2E - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x1D - adds r0, r6, 0 - movs r1, 0x17 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x1E - adds r0, r6, 0 - movs r1, 0x18 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x1C - adds r0, r6, 0 - movs r1, 0x16 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x1F - adds r0, r6, 0 - movs r1, 0x21 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x20 - adds r0, r6, 0 - movs r1, 0x2F - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x37 - adds r0, r6, 0 - movs r1, 0x30 - bl pokemon_setattr - adds r0, r6, 0 - movs r1, 0x23 - adds r2, r4, 0 - bl pokemon_setattr - mov r4, sp - adds r4, 0x35 - movs r0, 0 - strb r0, [r4] - ldrh r0, [r5, 0x28] - cmp r0, 0 - beq _0804DAC0 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0804DAB4 - add r0, sp, 0x10 - adds r1, r5, 0 - bl sub_804DAD4 - ldr r0, _0804DAB0 - add r1, sp, 0x10 - ldm r1!, {r2,r3,r7} - stm r0!, {r2,r3,r7} - ldm r1!, {r2,r3,r7} - stm r0!, {r2,r3,r7} - ldm r1!, {r2,r3,r7} - stm r0!, {r2,r3,r7} - adds r0, r6, 0 - movs r1, 0x40 - adds r2, r4, 0 - bl pokemon_setattr - adds r2, r5, 0 - adds r2, 0x28 - adds r0, r6, 0 - movs r1, 0xC - bl pokemon_setattr - b _0804DAC0 - .align 2, 0 -_0804DAA4: .4byte gIngameTrades -_0804DAA8: .4byte 0x03004360 -_0804DAAC: .4byte 0x030045c0 -_0804DAB0: .4byte 0x02029700 -_0804DAB4: - adds r2, r5, 0 - adds r2, 0x28 - adds r0, r6, 0 - movs r1, 0xC - bl pokemon_setattr -_0804DAC0: - ldr r0, _0804DAD0 - bl pokemon_calc_effective_stats - add sp, 0x38 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804DAD0: .4byte 0x030045c0 - thumb_func_end sub_804D948 - - thumb_func_start sub_804DAD4 -sub_804DAD4: @ 804DAD4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r2, _0804DB28 - adds r0, r5, 0 - adds r0, 0x2A - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - adds r1, r4, 0 - movs r3, 0x8 -_0804DAEE: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _0804DAEE - adds r0, r4, 0 - adds r0, 0x12 - adds r1, r5, 0 - adds r1, 0x2B - bl StringCopy - ldr r1, [r5, 0x18] - lsrs r0, r1, 24 - strb r0, [r4, 0x1A] - lsrs r0, r1, 16 - strb r0, [r4, 0x1B] - lsrs r0, r1, 8 - strb r0, [r4, 0x1C] - strb r1, [r4, 0x1D] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x1E] - ldrh r0, [r5, 0x28] - strh r0, [r4, 0x20] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804DB28: .4byte gUnknown_08215B78 - thumb_func_end sub_804DAD4 - - thumb_func_start sub_804DB2C -sub_804DB2C: @ 804DB2C - push {r4-r6,lr} - ldr r6, _0804DB58 - ldrh r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _0804DB5C - adds r0, r4 - movs r1, 0x2D - bl PokemonGetField - cmp r0, 0 - bne _0804DB60 - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r0, 16 - b _0804DB62 - .align 2, 0 -_0804DB58: .4byte 0x0202e8ce -_0804DB5C: .4byte 0x03004360 -_0804DB60: - movs r0, 0 -_0804DB62: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_804DB2C - - thumb_func_start sub_804DB68 -sub_804DB68: @ 804DB68 - push {lr} - ldr r0, _0804DB7C - ldrb r0, [r0] - ldr r1, _0804DB80 - ldrb r1, [r1] - bl sub_804D948 - pop {r0} - bx r0 - .align 2, 0 -_0804DB7C: .4byte 0x0202e8ce -_0804DB80: .4byte 0x0202e8cc - thumb_func_end sub_804DB68 - - thumb_func_start sub_804DB84 -sub_804DB84: @ 804DB84 - push {r4-r6,lr} - bl sub_804C29C - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bne _0804DBE6 - ldr r5, _0804DC04 - ldr r0, [r5] - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804DC08 - adds r0, r4 - bl DestroySprite - ldr r0, [r5] - adds r0, 0xB9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FreeSpriteOamMatrix - ldr r0, _0804DC0C - ldrb r4, [r0] - ldrb r0, [r0, 0x1] - movs r1, 0x6 - bl __umodsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_804BA94 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0x9E - ldr r1, _0804DC10 - strh r1, [r2] - adds r0, 0xBD - strb r6, [r0] - ldr r0, _0804DC14 - bl SetMainCallback2 -_0804DBE6: - bl sub_804BB78 - bl sub_804D63C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804DC04: .4byte 0x03004828 -_0804DC08: .4byte 0x02020004 -_0804DC0C: .4byte 0x020297d8 -_0804DC10: .4byte 0x0000abcd -_0804DC14: .4byte sub_804DC18 - thumb_func_end sub_804DB84 - - thumb_func_start sub_804DC18 -sub_804DC18: @ 804DC18 - push {r4,lr} - bl sub_804B2B0 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_804D63C - cmp r4, 0 - bne _0804DC64 - ldr r4, _0804DC7C - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x9C - ldrh r1, [r0] - ldr r0, _0804DC80 - cmp r1, r0 - bne _0804DC64 - adds r1, r2, 0 - adds r1, 0x9E - ldr r0, _0804DC84 - strh r0, [r1] - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x9E - movs r2, 0x14 - bl SendBlock - ldr r0, [r4] - adds r0, 0x9C - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9D - strb r1, [r0] -_0804DC64: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804DC7C: .4byte 0x03004828 -_0804DC80: .4byte 0x00000101 -_0804DC84: .4byte 0x0000dcba - thumb_func_end sub_804DC18 - - thumb_func_start sub_804DC88 -sub_804DC88: @ 804DC88 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _0804DCA8 - ldr r2, _0804DCAC - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x65 - bls _0804DC9C - b _0804E11A -_0804DC9C: - lsls r0, 2 - ldr r1, _0804DCB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804DCA8: .4byte 0x03001770 -_0804DCAC: .4byte 0x0000043c -_0804DCB0: .4byte _0804DCB4 - .align 2, 0 -_0804DCB4: - .4byte _0804DE4C - .4byte _0804DE9C - .4byte _0804DF14 - .4byte _0804E11A - .4byte _0804DFE0 - .4byte _0804E078 - .4byte _0804E0A0 - .4byte _0804E0BC - .4byte _0804E0E4 - .4byte _0804E10C - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E008 - .4byte _0804E034 - .4byte _0804E04C - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804DF54 - .4byte _0804DF7C - .4byte _0804DF9C - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804E11A - .4byte _0804DEB4 - .4byte _0804DEF4 -_0804DE4C: - ldr r5, _0804DE88 - ldr r0, _0804DE8C - str r0, [r5] - ldr r1, _0804DE90 - adds r2, r1 - ldrb r1, [r2] - adds r1, 0x1 - strb r1, [r2] - adds r0, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1D - bl ZeroFillWindowRect - ldr r4, _0804DE94 - ldr r1, _0804DE98 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, [r5] - adds r0, r1, 0x4 - adds r1, 0x34 - ldrb r2, [r1] - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - b _0804DF3E - .align 2, 0 -_0804DE88: .4byte 0x03004828 -_0804DE8C: .4byte 0x0201f000 -_0804DE90: .4byte 0x0000043c -_0804DE94: .4byte 0x020234cc -_0804DE98: .4byte gUnknown_0842D1EE -_0804DE9C: - bl sub_80084A4 - ldr r0, _0804DEAC - ldr r2, _0804DEB0 - adds r0, r2 - movs r2, 0 - movs r1, 0x64 - b _0804DFEE - .align 2, 0 -_0804DEAC: .4byte 0x03001770 -_0804DEB0: .4byte 0x0000043c -_0804DEB4: - ldr r0, _0804DEE8 - ldr r0, [r0] - adds r3, r0, 0 - adds r3, 0xC0 - ldr r0, [r3] - adds r0, 0x1 - str r0, [r3] - cmp r0, 0xB4 - bls _0804DED2 - ldr r1, _0804DEEC - adds r0, r2, r1 - movs r2, 0 - movs r1, 0x65 - strb r1, [r0] - str r2, [r3] -_0804DED2: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0804DEDE - b _0804E11A -_0804DEDE: - ldr r0, _0804DEF0 - ldr r2, _0804DEEC - adds r0, r2 - b _0804DF06 - .align 2, 0 -_0804DEE8: .4byte 0x03004828 -_0804DEEC: .4byte 0x0000043c -_0804DEF0: .4byte 0x03001770 -_0804DEF4: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0804DF00 - b _0804E11A -_0804DF00: - ldr r0, _0804DF0C - ldr r1, _0804DF10 - adds r0, r1 -_0804DF06: - movs r1, 0x2 - strb r1, [r0] - b _0804E11A - .align 2, 0 -_0804DF0C: .4byte 0x03001770 -_0804DF10: .4byte 0x0000043c -_0804DF14: - ldr r0, _0804DF48 - adds r1, r2, r0 - movs r0, 0x32 - strb r0, [r1] - ldr r4, _0804DF4C - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x13 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1D - bl ZeroFillWindowRect - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _0804DF50 - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] -_0804DF3E: - movs r3, 0x2 - bl sub_8003460 - b _0804E11A - .align 2, 0 -_0804DF48: .4byte 0x0000043c -_0804DF4C: .4byte 0x03004828 -_0804DF50: .4byte gUnknown_08411905 -_0804DF54: - bl sub_8047A1C - movs r0, 0x15 - bl sav12_xor_increment - bl sub_8125D80 - ldr r1, _0804DF74 - ldr r2, _0804DF78 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - b _0804DFF0 - .align 2, 0 -_0804DF74: .4byte 0x03001770 -_0804DF78: .4byte 0x0000043c -_0804DF7C: - ldr r0, _0804DF94 - ldr r1, [r0] - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x5 - beq _0804DF8E - b _0804E11A -_0804DF8E: - ldr r0, _0804DF98 - adds r1, r2, r0 - b _0804E0FA - .align 2, 0 -_0804DF94: .4byte 0x03004828 -_0804DF98: .4byte 0x0000043c -_0804DF9C: - bl sub_8125DA8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _0804DFC0 - bl sub_8047A34 - ldr r0, _0804DFB8 - ldr r1, _0804DFBC - adds r0, r1 - movs r1, 0x4 - strb r1, [r0] - b _0804E11A - .align 2, 0 -_0804DFB8: .4byte 0x03001770 -_0804DFBC: .4byte 0x0000043c -_0804DFC0: - ldr r0, _0804DFD4 - ldr r0, [r0] - adds r0, 0xC0 - str r1, [r0] - ldr r0, _0804DFD8 - ldr r2, _0804DFDC - adds r0, r2 - movs r1, 0x33 - strb r1, [r0] - b _0804E11A - .align 2, 0 -_0804DFD4: .4byte 0x03004828 -_0804DFD8: .4byte 0x03001770 -_0804DFDC: .4byte 0x0000043c -_0804DFE0: - bl sub_8125DDC - ldr r0, _0804DFFC - ldr r1, _0804E000 - adds r0, r1 - movs r2, 0 - movs r1, 0x28 -_0804DFEE: - strb r1, [r0] -_0804DFF0: - ldr r0, _0804E004 - ldr r0, [r0] - adds r0, 0xC0 - str r2, [r0] - b _0804E11A - .align 2, 0 -_0804DFFC: .4byte 0x03001770 -_0804E000: .4byte 0x0000043c -_0804E004: .4byte 0x03004828 -_0804E008: - ldr r0, _0804E02C - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x32 - bhi _0804E01C - b _0804E11A -_0804E01C: - movs r0, 0 - str r0, [r1] - ldr r0, _0804E030 - adds r1, r2, r0 - movs r0, 0x29 - strb r0, [r1] - b _0804E11A - .align 2, 0 -_0804E02C: .4byte 0x03004828 -_0804E030: .4byte 0x0000043c -_0804E034: - bl sub_80084A4 - ldr r0, _0804E044 - ldr r1, _0804E048 - adds r0, r1 - movs r1, 0x2A - strb r1, [r0] - b _0804E11A - .align 2, 0 -_0804E044: .4byte 0x03001770 -_0804E048: .4byte 0x0000043c -_0804E04C: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _0804E11A - bl sub_8125E04 - ldr r1, _0804E06C - movs r0, 0 - strb r0, [r1] - ldr r0, _0804E070 - ldr r2, _0804E074 - adds r0, r2 - movs r1, 0x5 - strb r1, [r0] - b _0804E11A - .align 2, 0 -_0804E06C: .4byte 0x03001bb4 -_0804E070: .4byte 0x03001770 -_0804E074: .4byte 0x0000043c -_0804E078: - ldr r0, _0804E098 - ldr r1, [r0] - adds r1, 0xC0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bls _0804E11A - ldr r0, _0804E09C - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_80084A4 - b _0804E11A - .align 2, 0 -_0804E098: .4byte 0x03004828 -_0804E09C: .4byte 0x0000043c -_0804E0A0: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _0804E11A - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0804E0F4 -_0804E0BC: - ldr r0, _0804E0D8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804E11A - movs r0, 0x3 - bl play_sound_effect - ldr r1, _0804E0DC - ldr r0, _0804E0E0 - adds r1, r0 - b _0804E0FA - .align 2, 0 -_0804E0D8: .4byte 0x0202f388 -_0804E0DC: .4byte 0x03001770 -_0804E0E0: .4byte 0x0000043c -_0804E0E4: - bl sub_8075028 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804E11A - bl sub_800832C -_0804E0F4: - ldr r1, _0804E104 - ldr r2, _0804E108 - adds r1, r2 -_0804E0FA: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804E11A - .align 2, 0 -_0804E104: .4byte 0x03001770 -_0804E108: .4byte 0x0000043c -_0804E10C: - ldr r0, _0804E13C - ldrb r0, [r0] - cmp r0, 0 - bne _0804E11A - ldr r0, _0804E140 - bl SetMainCallback2 -_0804E11A: - bl HasLinkErrorOccurred - lsls r0, 24 - cmp r0, 0 - bne _0804E128 - bl RunTasks -_0804E128: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E13C: .4byte 0x03002fa4 -_0804E140: .4byte sub_804E144 - thumb_func_end sub_804DC88 - - thumb_func_start sub_804E144 -sub_804E144: @ 804E144 - push {lr} - ldr r0, _0804E16C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804E158 - ldr r0, _0804E170 - bl SetMainCallback2 -_0804E158: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 -_0804E16C: .4byte 0x0202f388 -_0804E170: .4byte sub_8047CD8 - thumb_func_end sub_804E144 - - thumb_func_start sub_804E174 -sub_804E174: @ 804E174 - push {lr} - sub sp, 0x4 - bl script_env_2_enable - ldr r0, _0804E19C - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0804E19C: .4byte sub_804E1A0 - thumb_func_end sub_804E174 - - thumb_func_start sub_804E1A0 -sub_804E1A0: @ 804E1A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0804E1CC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804E1C4 - ldr r0, _0804E1D0 - bl SetMainCallback2 - ldr r1, _0804E1D4 - ldr r0, _0804E1D8 - str r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0804E1C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804E1CC: .4byte 0x0202f388 -_0804E1D0: .4byte sub_804B790 -_0804E1D4: .4byte 0x0300485c -_0804E1D8: .4byte sub_8080990 - thumb_func_end sub_804E1A0 - - thumb_func_start sub_804E1DC -sub_804E1DC: @ 804E1DC - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0804E1E2: - ldr r0, _0804E220 - ldrb r0, [r0, 0x1] - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0804E224 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x43 - bl PokemonGetField - adds r0, r5, r0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xB - bls _0804E1E2 - cmp r5, 0 - beq _0804E21A - ldr r0, _0804E228 - bl FlagSet -_0804E21A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E220: .4byte 0x020297d8 -_0804E224: .4byte 0x030045c0 -_0804E228: .4byte 0x0000083b - thumb_func_end sub_804E1DC - - thumb_func_start sub_804E22C -sub_804E22C: @ 804E22C - push {r4,lr} - ldr r0, _0804E26C - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _0804E270 - ldr r4, _0804E274 - movs r2, 0x80 - lsls r2, 4 - adds r1, r4, 0 - bl CpuSet - ldr r1, _0804E278 - ldr r0, _0804E27C - str r4, [r0] - str r1, [r0, 0x4] - ldr r1, _0804E280 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _0804E284 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, _0804E288 - ldr r2, _0804E28C - adds r0, r2, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804E26C: .4byte gUnknown_08D00000 -_0804E270: .4byte gUnknown_08D00524 -_0804E274: .4byte 0x02000000 -_0804E278: .4byte 0x06002800 -_0804E27C: .4byte 0x040000d4 -_0804E280: .4byte 0x80000280 -_0804E284: .4byte gUnknown_08D004E0 -_0804E288: .4byte 0x0400000a -_0804E28C: .4byte 0x00000502 - thumb_func_end sub_804E22C - - thumb_func_start sub_804E290 -sub_804E290: @ 804E290 - push {lr} - ldr r0, _0804E2B0 - ldr r1, _0804E2B4 - ldr r2, _0804E2B8 - ldr r2, [r2] - adds r2, 0x56 - movs r3, 0 - ldrsh r2, [r2, r3] - subs r2, 0x80 - lsls r2, 17 - asrs r2, 16 - bl m4aMPlayPitchControl - pop {r0} - bx r0 - .align 2, 0 -_0804E2B0: .4byte 0x03007400 -_0804E2B4: .4byte 0x0000ffff -_0804E2B8: .4byte 0x03004854 - thumb_func_end sub_804E290 - - thumb_func_start sub_804E2BC -sub_804E2BC: @ 804E2BC - push {lr} - bl sub_80514A4 - bl sub_80514F0 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_804E2BC - - thumb_func_start sub_804E2D8 -sub_804E2D8: @ 804E2D8 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_804E2D8 - - thumb_func_start sub_804E2EC -sub_804E2EC: @ 804E2EC - push {r4-r7,lr} - ldr r1, _0804E308 - ldr r0, [r1] - ldrb r0, [r0, 0x1] - mov r12, r1 - cmp r0, 0x9 - bls _0804E2FC - b _0804E4F4 -_0804E2FC: - lsls r0, 2 - ldr r1, _0804E30C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804E308: .4byte 0x03004854 -_0804E30C: .4byte _0804E310 - .align 2, 0 -_0804E310: - .4byte _0804E338 - .4byte _0804E34C - .4byte _0804E380 - .4byte _0804E3C4 - .4byte _0804E3D8 - .4byte _0804E3EC - .4byte _0804E410 - .4byte _0804E434 - .4byte _0804E48C - .4byte _0804E4BC -_0804E338: - ldr r0, _0804E344 - ldr r1, _0804E348 - bl sub_800D238 - b _0804E49E - .align 2, 0 -_0804E344: .4byte gUnknown_08E6C100 -_0804E348: .4byte 0x02010000 -_0804E34C: - ldr r1, _0804E36C - ldr r2, _0804E370 - ldr r0, _0804E374 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0804E378 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _0804E37C - movs r2, 0x80 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - b _0804E49E - .align 2, 0 -_0804E36C: .4byte gUnknown_08215C2C -_0804E370: .4byte 0x06004000 -_0804E374: .4byte 0x040000d4 -_0804E378: .4byte 0x80000200 -_0804E37C: .4byte gUnknown_08215C0C -_0804E380: - ldr r3, _0804E3B8 - movs r4, 0xC0 - lsls r4, 19 - movs r5, 0x80 - lsls r5, 6 - ldr r1, _0804E3BC - ldr r6, _0804E3C0 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_0804E396: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _0804E396 - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, r12 - b _0804E4A0 - .align 2, 0 -_0804E3B8: .4byte 0x02010000 -_0804E3BC: .4byte 0x040000d4 -_0804E3C0: .4byte 0x80000800 -_0804E3C4: - ldr r0, _0804E3D0 - ldr r1, _0804E3D4 - bl sub_800D238 - b _0804E49E - .align 2, 0 -_0804E3D0: .4byte gUnknown_08E6C920 -_0804E3D4: .4byte 0x02010000 -_0804E3D8: - ldr r0, _0804E3E4 - ldr r1, _0804E3E8 - bl sub_800D238 - b _0804E49E - .align 2, 0 -_0804E3E4: .4byte gUnknown_08E6D354 -_0804E3E8: .4byte 0x02013000 -_0804E3EC: - ldr r1, _0804E400 - ldr r2, _0804E404 - ldr r0, _0804E408 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0804E40C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - mov r0, r12 - b _0804E4A0 - .align 2, 0 -_0804E400: .4byte 0x02010000 -_0804E404: .4byte 0x0600e000 -_0804E408: .4byte 0x040000d4 -_0804E40C: .4byte 0x80000800 -_0804E410: - ldr r1, _0804E424 - ldr r2, _0804E428 - ldr r0, _0804E42C - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0804E430 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - mov r0, r12 - b _0804E4A0 - .align 2, 0 -_0804E424: .4byte 0x02011000 -_0804E428: .4byte 0x0600f000 -_0804E42C: .4byte 0x040000d4 -_0804E430: .4byte 0x80000800 -_0804E434: - ldr r3, _0804E474 - movs r2, 0 - adds r6, r3, 0 - ldr r7, _0804E478 - movs r0, 0x80 - lsls r0, 1 - adds r5, r0, 0 - ldr r4, _0804E47C -_0804E444: - lsls r0, r2, 1 - adds r0, r3 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r4 - bls _0804E444 - ldr r1, _0804E480 - ldr r0, _0804E484 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _0804E488 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - adds r0, r7, 0 - movs r1, 0x80 - movs r2, 0x20 - bl LoadPalette - b _0804E49E - .align 2, 0 -_0804E474: .4byte 0x02013000 -_0804E478: .4byte gUnknown_0821602C -_0804E47C: .4byte 0x0000027f -_0804E480: .4byte 0x06006000 -_0804E484: .4byte 0x040000d4 -_0804E488: .4byte 0x80000280 -_0804E48C: - ldr r0, _0804E4AC - bl LoadSpriteSheet - ldr r0, _0804E4B0 - bl LoadSpriteSheet - ldr r0, _0804E4B4 - bl LoadSpriteSheet -_0804E49E: - ldr r0, _0804E4B8 -_0804E4A0: - ldr r1, [r0] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _0804E4F4 - .align 2, 0 -_0804E4AC: .4byte gUnknown_082163DC -_0804E4B0: .4byte gUnknown_082164F4 -_0804E4B4: .4byte gUnknown_08216454 -_0804E4B8: .4byte 0x03004854 -_0804E4BC: - ldr r0, _0804E4E0 - bl LoadSpriteSheet - ldr r0, _0804E4E4 - bl LoadSpriteSheet - ldr r0, _0804E4E8 - bl LoadSpritePalette - ldr r0, _0804E4EC - bl LoadSpritePalette - ldr r0, _0804E4F0 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x1] - movs r0, 0x1 - b _0804E4F6 - .align 2, 0 -_0804E4E0: .4byte gUnknown_08216540 -_0804E4E4: .4byte gUnknown_08216574 -_0804E4E8: .4byte gUnknown_082163EC -_0804E4EC: .4byte gUnknown_082163E4 -_0804E4F0: .4byte 0x03004854 -_0804E4F4: - movs r0, 0 -_0804E4F6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804E2EC - - thumb_func_start sub_804E4FC -sub_804E4FC: @ 804E4FC - movs r1, 0x80 - lsls r1, 19 - ldr r2, _0804E52C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0xC - movs r2, 0x91 - lsls r2, 7 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _0804E530 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0804E534 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_0804E52C: .4byte 0x00001341 -_0804E530: .4byte 0x00000c0d -_0804E534: .4byte 0x04000010 - thumb_func_end sub_804E4FC - - thumb_func_start sub_804E538 -sub_804E538: @ 804E538 - push {lr} - ldr r1, _0804E55C - ldr r0, _0804E560 - str r0, [r1] - adds r2, r0, 0 - adds r2, 0x6F - movs r1, 0 - strb r1, [r0] - strb r1, [r2] - ldr r0, _0804E564 - ldrb r0, [r0] - bl sub_804E884 - ldr r0, _0804E568 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0804E55C: .4byte 0x03004854 -_0804E560: .4byte 0x02018000 -_0804E564: .4byte 0x0202e8cc -_0804E568: .4byte sub_804E56C - thumb_func_end sub_804E538 - - thumb_func_start sub_804E56C -sub_804E56C: @ 804E56C - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _0804E588 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x6 - bls _0804E57C - b _0804E71A -_0804E57C: - lsls r0, 2 - ldr r1, _0804E58C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804E588: .4byte 0x03004854 -_0804E58C: .4byte _0804E590 - .align 2, 0 -_0804E590: - .4byte _0804E5AC - .4byte _0804E614 - .4byte _0804E67C - .4byte _0804E692 - .4byte _0804E6A8 - .4byte _0804E6D4 - .4byte _0804E700 -_0804E5AC: - movs r0, 0x80 - lsls r0, 19 - movs r5, 0 - strh r5, [r0] - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0 - bl SetVBlankCallback - ldr r4, _0804E60C - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl sub_8071C4C - ldr r3, _0804E610 - ldr r2, [r3] - ldrb r0, [r2] - adds r0, 0x1 - movs r1, 0 - strb r0, [r2] - ldr r2, [r3] - movs r3, 0xA0 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - subs r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - movs r0, 0xA1 - lsls r0, 1 - adds r3, r2, r0 - movs r0, 0x50 - strh r0, [r3] - movs r3, 0xA2 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - strb r5, [r2, 0x1] - bl sub_8051474 - b _0804E71A - .align 2, 0 -_0804E60C: .4byte gWindowConfig_81E6F68 -_0804E610: .4byte 0x03004854 -_0804E614: - bl sub_804E2EC - lsls r0, 24 - cmp r0, 0 - bne _0804E620 - b _0804E71A -_0804E620: - movs r4, 0 - ldr r5, _0804E668 - ldr r6, _0804E66C -_0804E626: - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - ldr r0, _0804E670 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - adds r1, 0x5C - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x5C - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804E674 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0804E626 - ldr r0, _0804E678 - bl SetVBlankCallback - b _0804E6BE - .align 2, 0 -_0804E668: .4byte gUnknown_082162E4 -_0804E66C: .4byte 0x03004854 -_0804E670: .4byte gSpriteTemplate_82163F4 -_0804E674: .4byte 0x02020004 -_0804E678: .4byte sub_804E2BC -_0804E67C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - bl sub_8051474 - b _0804E6BE -_0804E692: - bl sub_804E4FC - ldr r0, _0804E6A4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804E71A - b _0804E6BE - .align 2, 0 -_0804E6A4: .4byte 0x0202f388 -_0804E6A8: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl DrawDefaultWindow - ldr r0, _0804E6CC - movs r1, 0x1 - movs r2, 0xF - bl AddTextPrinterWithCallbackForMessage -_0804E6BE: - ldr r0, _0804E6D0 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804E71A - .align 2, 0 -_0804E6CC: .4byte gUnknown_0842D307 -_0804E6D0: .4byte 0x03004854 -_0804E6D4: - bl sub_8072080 - lsls r0, 24 - cmp r0, 0 - beq _0804E71A - ldr r0, _0804E6FC - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0804E71A - .align 2, 0 -_0804E6FC: .4byte 0x03004854 -_0804E700: - ldr r0, _0804E730 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0804E71A - bl sub_80A6978 - ldr r0, _0804E734 - ldr r0, [r0] - strb r4, [r0] -_0804E71A: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804E730: .4byte 0x0202f388 -_0804E734: .4byte 0x03004854 - thumb_func_end sub_804E56C - - thumb_func_start sub_804E738 -sub_804E738: @ 804E738 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - subs r1, r2 - ldrh r0, [r4, 0x3C] - adds r1, r0 - strh r1, [r4, 0x32] - ldrh r3, [r4, 0x2E] - adds r0, r3 - strh r0, [r4, 0x2E] - subs r2, 0x1 - strh r2, [r4, 0x36] - lsls r0, 16 - lsls r1, 16 - cmp r0, r1 - bge _0804E786 - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x36] - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0804E780 - adds r0, r4, 0 - bl DestroySprite - b _0804E786 -_0804E780: - movs r0, 0x74 - bl audio_play -_0804E786: - ldrh r0, [r4, 0x30] - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x32] - strh r0, [r4, 0x22] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804E738 - - thumb_func_start sub_804E794 -sub_804E794: @ 804E794 - push {r4-r6,lr} - ldr r5, [sp, 0x10] - ldr r6, [sp, 0x14] - lsls r2, 16 - lsrs r2, 16 - movs r4, 0 - strh r2, [r0, 0x2E] - strh r1, [r0, 0x30] - strh r2, [r0, 0x32] - strh r3, [r0, 0x34] - movs r1, 0xA - strh r1, [r0, 0x36] - strh r4, [r0, 0x38] - strh r5, [r0, 0x3A] - strh r6, [r0, 0x3C] - ldr r1, _0804E7BC - str r1, [r0, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804E7BC: .4byte sub_804E738 - thumb_func_end sub_804E794 - - thumb_func_start sub_804E7C0 -sub_804E7C0: @ 804E7C0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r6, r1, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r0, 24 - movs r1, 0xF6 - lsls r1, 23 - adds r0, r1 - lsrs r0, 24 - movs r3, 0x1 - ands r3, r6 - movs r1, 0 - movs r2, 0x50 - bl sub_80A7DEC - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - mov r8, r2 - add r8, r0 - mov r3, r8 - lsls r3, 2 - mov r8, r3 - ldr r0, _0804E83C - add r8, r0 - ldr r5, _0804E840 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 1 - adds r0, r4, r5 - movs r6, 0 - ldrsh r1, [r0, r6] - adds r0, r5, 0x2 - adds r0, r4, r0 - movs r3, 0 - ldrsh r2, [r0, r3] - adds r0, r5, 0x4 - adds r0, r4, r0 - movs r6, 0 - ldrsh r3, [r0, r6] - adds r0, r5, 0x6 - adds r0, r4, r0 - movs r6, 0 - ldrsh r0, [r0, r6] - str r0, [sp] - adds r5, 0x8 - adds r4, r5 - movs r5, 0 - ldrsh r0, [r4, r5] - str r0, [sp, 0x4] - mov r0, r8 - bl sub_804E794 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804E83C: .4byte 0x02020004 -_0804E840: .4byte gUnknown_08216594 - thumb_func_end sub_804E7C0 - - thumb_func_start sub_804E844 -sub_804E844: @ 804E844 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r5, r1, 16 - lsrs r5, 16 - adds r0, r5, 0 - adds r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - bl GetBerryInfo - adds r4, r0, 0 - strh r5, [r6] - adds r0, r6, 0x2 - adds r1, r4, 0 - bl StringCopy - ldrb r0, [r4, 0x15] - strb r0, [r6, 0x9] - ldrb r0, [r4, 0x16] - strb r0, [r6, 0xA] - ldrb r0, [r4, 0x17] - strb r0, [r6, 0xB] - ldrb r0, [r4, 0x18] - strb r0, [r6, 0xC] - ldrb r0, [r4, 0x19] - strb r0, [r6, 0xD] - ldrb r0, [r4, 0x1A] - strb r0, [r6, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_804E844 - - thumb_func_start sub_804E884 -sub_804E884: @ 804E884 - push {r4,r5,lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _0804E89E - ldr r2, _0804E8AC - movs r3, 0x2 - adds r0, r2, 0 - adds r0, 0x54 -_0804E896: - strh r3, [r0, 0x1A] - subs r0, 0x1C - cmp r0, r2 - bge _0804E896 -_0804E89E: - cmp r1, 0x1 - beq _0804E8C4 - cmp r1, 0x1 - bgt _0804E8B0 - cmp r1, 0 - beq _0804E8BA - b _0804E974 - .align 2, 0 -_0804E8AC: .4byte 0x03002970 -_0804E8B0: - cmp r1, 0x2 - beq _0804E8F8 - cmp r1, 0x3 - beq _0804E93C - b _0804E974 -_0804E8BA: - ldr r0, _0804E8C0 - strb r1, [r0] - b _0804E974 - .align 2, 0 -_0804E8C0: .4byte 0x03004834 -_0804E8C4: - ldr r0, _0804E8E4 - strb r1, [r0] - ldr r0, _0804E8E8 - ldr r0, [r0] - adds r0, 0x88 - movs r1, 0x2 - strb r1, [r0] - ldr r4, _0804E8EC - ldr r1, _0804E8F0 - adds r0, r4, 0 - bl StringCopy - adds r4, 0x1C - ldr r0, _0804E8F4 - ldr r1, [r0] - b _0804E920 - .align 2, 0 -_0804E8E4: .4byte 0x03004834 -_0804E8E8: .4byte 0x03004854 -_0804E8EC: .4byte 0x03002978 -_0804E8F0: .4byte 0x02024ea4 -_0804E8F4: .4byte gUnknown_082162B8 -_0804E8F8: - ldr r0, _0804E928 - strb r1, [r0] - ldr r0, _0804E92C - ldr r0, [r0] - adds r0, 0x88 - movs r1, 0x3 - strb r1, [r0] - ldr r4, _0804E930 - ldr r1, _0804E934 - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - adds r0, 0x1C - ldr r5, _0804E938 - ldr r1, [r5] - bl StringCopy - adds r4, 0x38 - ldr r1, [r5, 0x4] -_0804E920: - adds r0, r4, 0 - bl StringCopy - b _0804E974 - .align 2, 0 -_0804E928: .4byte 0x03004834 -_0804E92C: .4byte 0x03004854 -_0804E930: .4byte 0x03002978 -_0804E934: .4byte 0x02024ea4 -_0804E938: .4byte gUnknown_082162B8 -_0804E93C: - ldr r0, _0804E97C - strb r1, [r0] - ldr r0, _0804E980 - ldr r0, [r0] - adds r0, 0x88 - movs r1, 0x4 - strb r1, [r0] - ldr r4, _0804E984 - ldr r1, _0804E988 - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - adds r0, 0x1C - ldr r5, _0804E98C - ldr r1, [r5] - bl StringCopy - adds r0, r4, 0 - adds r0, 0x38 - ldr r1, [r5, 0x4] - bl StringCopy - adds r4, 0x54 - ldr r1, [r5, 0x8] - adds r0, r4, 0 - bl StringCopy -_0804E974: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E97C: .4byte 0x03004834 -_0804E980: .4byte 0x03004854 -_0804E984: .4byte 0x03002978 -_0804E988: .4byte 0x02024ea4 -_0804E98C: .4byte gUnknown_082162B8 - thumb_func_end sub_804E884 - - thumb_func_start sub_804E990 -sub_804E990: @ 804E990 - push {r4,r5,lr} - movs r0, 0x80 - lsls r0, 19 - movs r2, 0 - strh r2, [r0] - ldr r3, _0804E9D8 - ldr r0, _0804E9DC - str r0, [r3] - movs r1, 0 - strb r2, [r0] - movs r2, 0x9A - lsls r2, 1 - adds r0, r2 - str r1, [r0] - movs r2, 0 - ldr r5, _0804E9E0 - adds r4, r3, 0 - movs r3, 0 -_0804E9B4: - ldr r0, [r4] - lsls r1, r2, 1 - adds r0, 0x80 - adds r0, r1 - strh r3, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _0804E9B4 - ldrb r0, [r5] - bl sub_804E884 - ldrh r0, [r5] - cmp r0, 0 - bne _0804E9E8 - ldr r0, _0804E9E4 - bl SetMainCallback2 - b _0804E9EE - .align 2, 0 -_0804E9D8: .4byte 0x03004854 -_0804E9DC: .4byte 0x02018000 -_0804E9E0: .4byte 0x0202e8cc -_0804E9E4: .4byte sub_804E9F8 -_0804E9E8: - ldr r0, _0804E9F4 - bl SetMainCallback2 -_0804E9EE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E9F4: .4byte sub_804F378 - thumb_func_end sub_804E990 - - thumb_func_start sub_804E9F8 -sub_804E9F8: @ 804E9F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r1, _0804EA18 - ldr r0, [r1] - ldrb r0, [r0] - mov r8, r1 - cmp r0, 0x66 - bls _0804EA0E - b _0804F0CE -_0804EA0E: - lsls r0, 2 - ldr r1, _0804EA1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804EA18: .4byte 0x03004854 -_0804EA1C: .4byte _0804EA20 - .align 2, 0 -_0804EA20: - .4byte _0804EBBC - .4byte _0804EC74 - .4byte _0804EC94 - .4byte _0804ECE8 - .4byte _0804ECFA - .4byte _0804ED14 - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804ED48 - .4byte _0804ED94 - .4byte _0804EDB8 - .4byte _0804EE46 - .4byte _0804EEA0 - .4byte _0804EF16 - .4byte _0804EF34 - .4byte _0804EFD8 - .4byte _0804F00C - .4byte _0804F0CE - .4byte _0804F020 - .4byte _0804F024 - .4byte _0804F02A - .4byte _0804F03A - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F0CE - .4byte _0804F084 - .4byte _0804F0A0 - .4byte _0804F0BC -_0804EBBC: - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _0804EC60 - bl SetVBlankCallback - ldr r4, _0804EC64 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl sub_8071C4C - ldr r1, _0804EC68 - ldr r2, _0804EC6C - adds r0, r2, 0 - strh r0, [r1] - ldr r3, _0804EC70 - ldr r1, [r3] - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, [r3] - adds r4, r0, 0 - adds r4, 0x4E - movs r1, 0 - strh r2, [r4] - adds r0, 0x7E - strb r1, [r0] - ldr r1, [r3] - movs r4, 0xA2 - lsls r4, 1 - adds r0, r1, r4 - strh r2, [r0] - adds r4, 0x2 - adds r0, r1, r4 - strh r2, [r0] - movs r5, 0 - movs r6, 0 - mov r8, r3 - movs r7, 0xA6 - lsls r7, 1 -_0804EC18: - ldr r0, [r3] - lsls r1, r5, 1 - adds r0, 0x70 - adds r0, r1 - strh r6, [r0] - adds r4, r5, 0x1 - adds r1, r5 - lsls r1, 1 - movs r2, 0x2 -_0804EC2A: - ldr r0, [r3] - adds r0, r7 - adds r0, r1 - strh r6, [r0] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _0804EC2A - adds r5, r4, 0 - cmp r5, 0x3 - ble _0804EC18 - mov r0, r8 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x7C - movs r2, 0 - movs r1, 0 - strh r1, [r0] - subs r0, 0x26 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x6 - strh r1, [r0] - strb r2, [r3, 0x1] - b _0804F0CE - .align 2, 0 -_0804EC60: .4byte sub_804E2BC -_0804EC64: .4byte gWindowConfig_81E6F68 -_0804EC68: .4byte 0x03002b74 -_0804EC6C: .4byte 0x00004422 -_0804EC70: .4byte 0x03004854 -_0804EC74: - bl sub_804E2EC - lsls r0, 24 - cmp r0, 0 - bne _0804EC80 - b _0804F0CE -_0804EC80: - ldr r0, _0804EC90 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_8051474 - b _0804F0CE - .align 2, 0 -_0804EC90: .4byte 0x03004854 -_0804EC94: - movs r5, 0 - ldr r4, _0804ECD8 - ldr r6, _0804ECDC -_0804EC9A: - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - ldr r0, _0804ECE0 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - adds r1, 0x60 - adds r1, r5 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x60 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804ECE4 - adds r0, r1 - adds r1, r5, 0 - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _0804EC9A - b _0804F0AA - .align 2, 0 -_0804ECD8: .4byte gUnknown_082162E4 -_0804ECDC: .4byte 0x03004854 -_0804ECE0: .4byte gSpriteTemplate_82163F4 -_0804ECE4: .4byte 0x02020004 -_0804ECE8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _0804F0AA -_0804ECFA: - bl sub_804E4FC - ldr r0, _0804ED10 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804ED0C - b _0804F0CE -_0804ED0C: - b _0804F0AA - .align 2, 0 -_0804ED10: .4byte 0x0202f388 -_0804ED14: - movs r0, 0 - movs r1, 0xD - movs r2, 0x1D - movs r3, 0x13 - bl DrawDefaultWindow - ldr r0, _0804ED40 - movs r1, 0x1 - movs r2, 0xE - bl Print - ldr r2, _0804ED44 - ldr r1, [r2] - movs r3, 0 - movs r0, 0x8 - strb r0, [r1] - ldr r0, [r2] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - str r3, [r0] - b _0804F0CE - .align 2, 0 -_0804ED40: .4byte gUnknown_0842D3A5 -_0804ED44: .4byte 0x03004854 -_0804ED48: - mov r2, r8 - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - movs r5, 0 - strb r0, [r1] - ldr r0, [r2] - movs r3, 0x9E - lsls r3, 1 - adds r0, r3 - strb r5, [r0] - ldr r0, [r2] - movs r4, 0xBE - lsls r4, 1 - adds r0, r4 - ldr r1, _0804ED8C - ldrh r1, [r1] - bl sub_804E844 - ldr r0, _0804ED90 - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - movs r2, 0x10 - bl memcpy - bl sub_80084A4 - mov r3, r8 - ldr r0, [r3] - subs r4, 0x4C - adds r0, r4 - str r5, [r0] - b _0804F0CE - .align 2, 0 -_0804ED8C: .4byte 0x0203855e -_0804ED90: .4byte 0x03002a70 -_0804ED94: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0804EDA0 - b _0804F0CE -_0804EDA0: - bl ResetBlockReceivedFlags - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _0804EDB0 - b _0804F0AA -_0804EDB0: - movs r0, 0x4 - bl sub_8007E9C - b _0804F0AA -_0804EDB8: - mov r0, r8 - ldr r1, [r0] - movs r2, 0x98 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x14 - bgt _0804EDCE - b _0804F0CE -_0804EDCE: - bl sub_8071EF4 - bl GetBlockRecievedStatus - adds r4, r0, 0 - bl sub_8008198 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _0804EDE6 - b _0804F0CE -_0804EDE6: - movs r5, 0 - mov r7, r8 - movs r6, 0xBE - lsls r6, 1 - b _0804EE18 -_0804EDF0: - ldr r0, [r7] - lsls r4, r5, 4 - adds r0, r4, r0 - adds r0, r6 - lsls r1, r5, 8 - ldr r2, _0804EE2C - adds r1, r2 - movs r2, 0x10 - bl memcpy - ldr r0, [r7] - lsls r2, r5, 1 - adds r1, r0, 0 - adds r1, 0x80 - adds r1, r2 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r5, 0x1 -_0804EE18: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - blt _0804EDF0 - bl ResetBlockReceivedFlags - b _0804F0AA - .align 2, 0 -_0804EE2C: .4byte 0x03002b80 -_0804EE30: - ldrb r1, [r4] - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x80 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl sub_804E7C0 - b _0804EE7A -_0804EE46: - bl GetLinkPlayerCount - ldr r2, _0804EE98 - ldr r1, [r2] - adds r1, 0x88 - strb r0, [r1] - movs r5, 0 - ldr r2, [r2] - movs r3, 0x9E - lsls r3, 1 - adds r4, r2, r3 - ldr r1, _0804EE9C - adds r0, r2, 0 - adds r0, 0x88 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 2 - ldrb r3, [r4] - adds r0, r1 -_0804EE6C: - ldrb r1, [r0] - cmp r3, r1 - beq _0804EE30 - adds r0, 0x1 - adds r5, 0x1 - cmp r5, 0x3 - ble _0804EE6C -_0804EE7A: - ldr r3, _0804EE98 - ldr r1, [r3] - movs r4, 0x98 - lsls r4, 1 - adds r2, r1, r4 - movs r0, 0 - str r0, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, [r3] - movs r0, 0x9E - lsls r0, 1 - adds r1, r0 - b _0804F0AE - .align 2, 0 -_0804EE98: .4byte 0x03004854 -_0804EE9C: .4byte gUnknown_082162EC -_0804EEA0: - mov r1, r8 - ldr r2, [r1] - movs r3, 0x98 - lsls r3, 1 - adds r1, r2, r3 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bgt _0804EEB6 - b _0804F0CE -_0804EEB6: - movs r4, 0x9E - lsls r4, 1 - adds r0, r2, r4 - adds r1, r2, 0 - adds r1, 0x88 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcc _0804EF00 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - mov r0, r8 - ldr r2, [r0] - ldr r3, _0804EEF4 - ldr r1, _0804EEF8 - adds r0, r2, 0 - adds r0, 0x88 - ldrb r0, [r0] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r3 - ldr r3, _0804EEFC - adds r1, r3, 0 - ldrh r0, [r0] - adds r1, r0 - adds r2, 0x54 - strh r1, [r2] - b _0804EF06 - .align 2, 0 -_0804EEF4: .4byte gUnknown_082162F8 -_0804EEF8: .4byte gUnknown_08216300 -_0804EEFC: .4byte 0xffffa800 -_0804EF00: - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] -_0804EF06: - mov r4, r8 - ldr r0, [r4] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - movs r1, 0 - str r1, [r0] - b _0804F0CE -_0804EF16: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0804EF22 - b _0804F0CE -_0804EF22: - ldr r2, _0804EF30 - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - b _0804EFBC - .align 2, 0 -_0804EF30: .4byte 0x03004854 -_0804EF34: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 3 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - mov r4, r8 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x54 - movs r3, 0x80 - lsls r3, 2 - adds r0, r3, 0 - ldrh r4, [r1] - adds r0, r4 - strh r0, [r1] - movs r0, 0xA1 - lsls r0, 1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _0804EFB8 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - mov r1, r8 - ldr r3, [r1] - movs r2, 0xA1 - lsls r2, 1 - adds r1, r3, r2 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1] - ldr r2, _0804EFC8 - ldr r1, _0804EFCC - adds r0, r3, 0 - adds r0, 0x88 - ldrb r0, [r0] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r0, r3, 0 - adds r0, 0x54 - strh r1, [r0] - ldr r1, _0804EFD0 - ldr r4, _0804EFD4 - adds r0, r4, 0 - strh r0, [r1] - movs r0, 0x98 - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0 - str r0, [r1] - bl sub_804F238 - bl BuyMenuDrawFieldObjects -_0804EFB8: - mov r1, r8 - ldr r0, [r1] -_0804EFBC: - movs r2, 0xB4 - lsls r2, 1 - adds r0, r2 - bl sub_8051414 - b _0804F0CE - .align 2, 0 -_0804EFC8: .4byte gUnknown_082162F8 -_0804EFCC: .4byte gUnknown_08216300 -_0804EFD0: .4byte 0x0400000c -_0804EFD4: .4byte 0x00004882 -_0804EFD8: - bl sub_8051B8C - lsls r0, 24 - cmp r0, 0 - beq _0804EFF6 - ldr r0, _0804F008 - ldr r1, [r0] - movs r3, 0x98 - lsls r3, 1 - adds r2, r1, r3 - movs r0, 0 - str r0, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0804EFF6: - ldr r0, _0804F008 - ldr r0, [r0] - movs r4, 0xB4 - lsls r4, 1 - adds r0, r4 - bl sub_8051414 - b _0804F0CE - .align 2, 0 -_0804F008: .4byte 0x03004854 -_0804F00C: - ldr r0, _0804F01C - movs r2, 0x10 - negs r2, r2 - movs r1, 0x78 - movs r3, 0x3 - bl CreateSprite - b _0804F0AA - .align 2, 0 -_0804F01C: .4byte gSpriteTemplate_8216548 -_0804F020: - mov r0, r8 - b _0804F0AC -_0804F024: - bl sub_80084A4 - b _0804F0AA -_0804F02A: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _0804F0CE - bl sub_8007E24 - b _0804F0AA -_0804F03A: - mov r1, r8 - ldr r3, [r1] - adds r2, r3, 0 - adds r2, 0x56 - movs r1, 0 - movs r0, 0x80 - strh r0, [r2] - movs r2, 0x96 - lsls r2, 1 - adds r0, r3, r2 - str r1, [r0] - ldr r0, _0804F07C - bl SetMainCallback2 - bl current_map_music_get - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0804F080 - cmp r0, r4 - beq _0804F074 - bl current_map_music_get - mov r3, r8 - ldr r1, [r3] - movs r2, 0xBC - lsls r2, 1 - adds r1, r2 - strh r0, [r1] -_0804F074: - adds r0, r4, 0 - bl sub_8075474 - b _0804F0CE - .align 2, 0 -_0804F07C: .4byte sub_80501FC -_0804F080: .4byte 0x00000193 -_0804F084: - movs r0, 0 - movs r1, 0xD - movs r2, 0x1D - movs r3, 0x13 - bl DrawDefaultWindow - ldr r0, _0804F09C - movs r1, 0x1 - movs r2, 0xF - bl AddTextPrinterWithCallbackForMessage - b _0804F0AA - .align 2, 0 -_0804F09C: .4byte gUnknown_0842D2D9 -_0804F0A0: - bl sub_8072080 - lsls r0, 24 - cmp r0, 0 - beq _0804F0CE -_0804F0AA: - ldr r0, _0804F0B8 -_0804F0AC: - ldr r1, [r0] -_0804F0AE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804F0CE - .align 2, 0 -_0804F0B8: .4byte 0x03004854 -_0804F0BC: - ldr r0, _0804F0EC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804F0CE - ldr r0, _0804F0F0 - bl SetMainCallback2 -_0804F0CE: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F0EC: .4byte 0x0202f388 -_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_804E9F8 - - thumb_func_start sub_804F0F4 -sub_804F0F4: @ 804F0F4 - push {r4,lr} - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _0804F158 - bl SetVBlankCallback - ldr r4, _0804F15C - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl sub_8071C4C - ldr r1, _0804F160 - ldr r2, _0804F164 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0804F168 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x4E - movs r1, 0 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x6 - strh r1, [r0] - movs r3, 0xA2 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804F158: .4byte sub_804E2BC -_0804F15C: .4byte gWindowConfig_81E6F68 -_0804F160: .4byte 0x03002b74 -_0804F164: .4byte 0x00004422 -_0804F168: .4byte 0x03004854 - thumb_func_end sub_804F0F4 - - thumb_func_start task_tutorial_oak_boy_girl -task_tutorial_oak_boy_girl: @ 804F16C - push {lr} - lsls r0, 16 - lsls r1, 24 - lsrs r0, 24 - adds r2, r0, 0 - adds r2, 0x18 - ldr r0, _0804F1A8 - ldr r0, [r0] - lsrs r1, 23 - adds r0, 0xA2 - adds r0, r1 - ldrb r0, [r0] - ldr r1, _0804F1AC - adds r0, r1 - ldrb r1, [r0] - cmp r2, r1 - bcc _0804F1B4 - adds r0, r1, 0 - adds r0, 0x30 - cmp r2, r0 - bcs _0804F1B4 - subs r0, 0x1C - cmp r2, r0 - bcc _0804F1B0 - adds r0, 0x8 - cmp r2, r0 - bcs _0804F1B0 - movs r0, 0x2 - b _0804F1B6 - .align 2, 0 -_0804F1A8: .4byte 0x03004854 -_0804F1AC: .4byte gUnknown_08216303 -_0804F1B0: - movs r0, 0x1 - b _0804F1B6 -_0804F1B4: - movs r0, 0 -_0804F1B6: - pop {r1} - bx r1 - thumb_func_end task_tutorial_oak_boy_girl - - thumb_func_start sub_804F1BC -sub_804F1BC: @ 804F1BC - push {r4-r7,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - movs r4, 0 - cmp r0, 0xAF - bne _0804F1EE - movs r3, 0 - subs r5, r1, 0x1 - adds r2, 0x9 -_0804F1D2: - adds r0, r2, r4 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _0804F1E0 - adds r4, r3, 0 -_0804F1E0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bls _0804F1D2 - adds r0, r4, 0x5 - b _0804F204 -_0804F1EE: - subs r0, 0x85 - lsls r0, 16 - lsrs r4, r0, 16 - subs r5, r1, 0x1 - cmp r4, 0x4 - bls _0804F208 - adds r0, r4, 0 - movs r1, 0x5 - bl __umodsi3 - adds r0, 0x5 -_0804F204: - lsls r0, 16 - lsrs r4, r0, 16 -_0804F208: - movs r3, 0 - cmp r3, r5 - bge _0804F22E - ldr r7, _0804F234 - lsls r0, r4, 1 - adds r6, r0, r4 -_0804F214: - adds r4, r3, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - adds r1, r3, r6 - adds r1, r7 - ldrb r1, [r1] - adds r1, 0x85 - bl sub_80516C4 - lsls r4, 16 - lsrs r3, r4, 16 - cmp r3, r5 - blt _0804F214 -_0804F22E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F234: .4byte gUnknown_082165BC - thumb_func_end sub_804F1BC - - thumb_func_start sub_804F238 -sub_804F238: @ 804F238 - push {r4-r7,lr} - movs r4, 0 - ldr r7, _0804F2A0 - movs r6, 0xFF - ldr r5, _0804F2A4 -_0804F242: - ldr r3, [r7] - lsls r2, r4, 1 - adds r0, r3, 0 - adds r0, 0xA2 - adds r0, r2 - strh r6, [r0] - adds r1, r3, 0 - adds r1, 0x9A - adds r1, r2 - adds r0, r3, 0 - adds r0, 0x88 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r5 - ldrb r0, [r0] - strh r0, [r1] - adds r4, 0x1 - cmp r4, 0x3 - ble _0804F242 - movs r3, 0 - ldr r7, _0804F2A0 -_0804F270: - movs r4, 0 - adds r6, r3, 0x1 - lsls r5, r3, 1 -_0804F276: - ldr r2, [r7] - lsls r0, r4, 1 - adds r1, r2, 0 - adds r1, 0x9A - adds r1, r0 - ldrh r0, [r1] - cmp r0, r3 - bne _0804F28E - adds r0, r2, 0 - adds r0, 0xA2 - adds r0, r5 - strh r4, [r0] -_0804F28E: - adds r4, 0x1 - cmp r4, 0x3 - ble _0804F276 - adds r3, r6, 0 - cmp r3, 0x3 - ble _0804F270 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F2A0: .4byte 0x03004854 -_0804F2A4: .4byte gUnknown_082162EC - thumb_func_end sub_804F238 - - thumb_func_start BuyMenuDrawFieldObjects -BuyMenuDrawFieldObjects: @ 804F2A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r7, _0804F360 - ldr r0, _0804F364 - mov r8, r0 -_0804F2B6: - ldr r2, [r7] - lsls r4, r6, 1 - adds r0, r2, 0 - adds r0, 0x9A - adds r3, r0, r4 - ldrh r0, [r3] - cmp r0, 0xFF - beq _0804F34A - ldr r5, _0804F368 - adds r1, r2, 0 - adds r1, 0x5C - ldrh r3, [r3] - adds r1, r3 - adds r0, r2, 0 - adds r0, 0x60 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, [r7] - adds r1, r0, 0 - adds r1, 0x9A - adds r1, r4 - adds r0, 0x5C - ldrh r1, [r1] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804F36C - adds r0, r1 - lsls r1, r6, 24 - lsrs r1, 24 - bl StartSpriteAnim - bl GetMultiplayerId - lsls r0, 24 - ldr r1, [r7] - adds r1, 0x9A - adds r1, r4 - lsrs r0, 24 - ldrh r1, [r1] - cmp r0, r1 - bne _0804F31A - adds r0, r5, 0 - ldr r1, _0804F370 - bl StringCopy - adds r5, r0, 0 -_0804F31A: - ldr r0, [r7] - adds r0, 0x9A - adds r0, r4 - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _0804F374 - adds r1, r0 - adds r0, r5, 0 - bl StringCopy - mov r0, r8 - ldrb r1, [r0] - lsls r1, 3 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0x1] - lsls r2, 3 - ldr r0, _0804F368 - movs r3, 0x1 - bl sub_80729D8 -_0804F34A: - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _0804F2B6 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F360: .4byte 0x03004854 -_0804F364: .4byte gUnknown_082162D4 -_0804F368: .4byte 0x020231cc -_0804F36C: .4byte 0x02020004 -_0804F370: .4byte gUnknown_082162C4 -_0804F374: .4byte 0x03002978 - thumb_func_end BuyMenuDrawFieldObjects - - thumb_func_start sub_804F378 -sub_804F378: @ 804F378 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r1, _0804F398 - ldr r0, [r1] - ldrb r0, [r0] - mov r8, r1 - cmp r0, 0x15 - bls _0804F38E - b _0804F7E6 -_0804F38E: - lsls r0, 2 - ldr r1, _0804F39C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804F398: .4byte 0x03004854 -_0804F39C: .4byte _0804F3A0 - .align 2, 0 -_0804F3A0: - .4byte _0804F3F8 - .4byte _0804F474 - .4byte _0804F494 - .4byte _0804F4EC - .4byte _0804F518 - .4byte _0804F7E6 - .4byte _0804F7E6 - .4byte _0804F7E6 - .4byte _0804F54C - .4byte _0804F7E6 - .4byte _0804F7E6 - .4byte _0804F578 - .4byte _0804F5C8 - .4byte _0804F636 - .4byte _0804F650 - .4byte _0804F6F8 - .4byte _0804F720 - .4byte _0804F7E6 - .4byte _0804F73C - .4byte _0804F742 - .4byte _0804F748 - .4byte _0804F754 -_0804F3F8: - bl sub_804F0F4 - ldr r4, _0804F46C - ldrh r1, [r4] - movs r0, 0 - bl sub_80516C4 - ldr r5, _0804F470 - ldr r0, [r5] - movs r6, 0xBE - lsls r6, 1 - adds r0, r6 - ldrh r1, [r4] - bl sub_804E844 - ldrh r0, [r4] - ldr r2, [r5] - adds r1, r2, 0 - adds r1, 0x88 - ldrb r1, [r1] - adds r2, r6 - bl sub_804F1BC - movs r4, 0 - movs r6, 0 - mov r8, r5 - movs r7, 0xA6 - lsls r7, 1 -_0804F430: - ldr r0, [r5] - lsls r1, r4, 1 - adds r0, 0x70 - adds r0, r1 - strh r6, [r0] - adds r3, r4, 0x1 - adds r1, r4 - lsls r1, 1 - movs r2, 0x2 -_0804F442: - ldr r0, [r5] - adds r0, r7 - adds r0, r1 - strh r6, [r0] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _0804F442 - adds r4, r3, 0 - cmp r4, 0x3 - ble _0804F430 - mov r0, r8 - ldr r3, [r0] - adds r1, r3, 0 - adds r1, 0x7C - movs r2, 0 - movs r0, 0 - strh r0, [r1] - strb r2, [r3, 0x1] - b _0804F7E6 - .align 2, 0 -_0804F46C: .4byte 0x0203855e -_0804F470: .4byte 0x03004854 -_0804F474: - bl sub_804E2EC - lsls r0, 24 - cmp r0, 0 - bne _0804F480 - b _0804F7E6 -_0804F480: - ldr r0, _0804F490 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_8051474 - b _0804F7E6 - .align 2, 0 -_0804F490: .4byte 0x03004854 -_0804F494: - movs r4, 0 - ldr r5, _0804F4DC - ldr r6, _0804F4E0 -_0804F49A: - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - ldr r0, _0804F4E4 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - adds r1, 0x60 - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x60 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804F4E8 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0804F49A - ldr r0, _0804F4E0 - ldr r1, [r0] - b _0804F74C - .align 2, 0 -_0804F4DC: .4byte gUnknown_082162E4 -_0804F4E0: .4byte 0x03004854 -_0804F4E4: .4byte gSpriteTemplate_82163F4 -_0804F4E8: .4byte 0x02020004 -_0804F4EC: - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _0804F514 - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - str r4, [r0] - b _0804F7E6 - .align 2, 0 -_0804F514: .4byte 0x03004854 -_0804F518: - mov r2, r8 - ldr r1, [r2] - movs r3, 0x98 - lsls r3, 1 - adds r1, r3 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x2 - bne _0804F530 - bl sub_804E4FC -_0804F530: - ldr r0, _0804F548 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804F53E - b _0804F7E6 -_0804F53E: - mov r5, r8 - ldr r1, [r5] - movs r0, 0x8 - strb r0, [r1] - b _0804F7E6 - .align 2, 0 -_0804F548: .4byte 0x0202f388 -_0804F54C: - mov r0, r8 - ldr r1, [r0] - movs r2, 0 - movs r0, 0xB - strb r0, [r1] - mov r1, r8 - ldr r0, [r1] - movs r3, 0x9E - lsls r3, 1 - adds r0, r3 - strb r2, [r0] - b _0804F7E6 -_0804F564: - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x80 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_804E7C0 - b _0804F5A2 -_0804F578: - movs r4, 0 - ldr r2, _0804F5C0 - ldr r0, _0804F5C4 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x88 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 2 - movs r5, 0x9E - lsls r5, 1 - adds r1, r3, r5 - ldrb r1, [r1] - adds r0, r2 -_0804F594: - ldrb r2, [r0] - cmp r1, r2 - beq _0804F564 - adds r0, 0x1 - adds r4, 0x1 - cmp r4, 0x3 - ble _0804F594 -_0804F5A2: - ldr r3, _0804F5C4 - ldr r1, [r3] - movs r5, 0x98 - lsls r5, 1 - adds r2, r1, r5 - movs r0, 0 - str r0, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, [r3] - movs r0, 0x9E - lsls r0, 1 - adds r1, r0 - b _0804F74C - .align 2, 0 -_0804F5C0: .4byte gUnknown_082162EC -_0804F5C4: .4byte 0x03004854 -_0804F5C8: - mov r1, r8 - ldr r3, [r1] - movs r2, 0x98 - lsls r2, 1 - adds r1, r3, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bgt _0804F5DE - b _0804F7E6 -_0804F5DE: - movs r5, 0x9E - lsls r5, 1 - adds r0, r3, r5 - adds r4, r3, 0 - adds r4, 0x88 - ldrb r0, [r0] - ldrb r1, [r4] - cmp r0, r1 - bcc _0804F620 - ldr r2, _0804F614 - ldr r1, _0804F618 - ldrb r0, [r4] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r2 - ldr r2, _0804F61C - adds r1, r2, 0 - ldrh r0, [r0] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x54 - strh r1, [r0] - ldrb r0, [r3] - adds r0, 0x1 - b _0804F624 - .align 2, 0 -_0804F614: .4byte gUnknown_082162F8 -_0804F618: .4byte gUnknown_08216300 -_0804F61C: .4byte 0xffffa800 -_0804F620: - ldrb r0, [r3] - subs r0, 0x1 -_0804F624: - strb r0, [r3] - mov r3, r8 - ldr r0, [r3] - movs r5, 0x98 - lsls r5, 1 - adds r0, r5 - movs r1, 0 - str r1, [r0] - b _0804F7E6 -_0804F636: - mov r1, r8 - ldr r0, [r1] - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - bl sub_804F238 - movs r0, 0x2B - bl audio_play - mov r2, r8 - ldr r0, [r2] - b _0804F710 -_0804F650: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r5, 0x80 - lsls r5, 3 - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r2] - mov r0, r8 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x54 - movs r3, 0x80 - lsls r3, 2 - adds r0, r3, 0 - ldrh r5, [r1] - adds r0, r5 - strh r0, [r1] - movs r0, 0xA1 - lsls r0, 1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _0804F6D6 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - mov r1, r8 - ldr r3, [r1] - movs r2, 0xA1 - lsls r2, 1 - adds r1, r3, r2 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1] - ldr r2, _0804F6E8 - ldr r1, _0804F6EC - adds r0, r3, 0 - adds r0, 0x88 - ldrb r0, [r0] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r0, r3, 0 - adds r0, 0x54 - strh r1, [r0] - ldr r1, _0804F6F0 - ldr r5, _0804F6F4 - adds r0, r5, 0 - strh r0, [r1] - movs r0, 0x98 - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0 - str r0, [r1] - movs r0, 0x34 - bl audio_play - bl BuyMenuDrawFieldObjects -_0804F6D6: - mov r1, r8 - ldr r0, [r1] - movs r2, 0xB4 - lsls r2, 1 - adds r0, r2 - bl sub_8051414 - b _0804F7E6 - .align 2, 0 -_0804F6E8: .4byte gUnknown_082162F8 -_0804F6EC: .4byte gUnknown_08216300 -_0804F6F0: .4byte 0x0400000c -_0804F6F4: .4byte 0x00004882 -_0804F6F8: - bl sub_8051B8C - lsls r0, 24 - cmp r0, 0 - beq _0804F70C - ldr r0, _0804F71C - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0804F70C: - ldr r0, _0804F71C - ldr r0, [r0] -_0804F710: - movs r3, 0xB4 - lsls r3, 1 - adds r0, r3 - bl sub_8051414 - b _0804F7E6 - .align 2, 0 -_0804F71C: .4byte 0x03004854 -_0804F720: - ldr r0, _0804F734 - movs r2, 0x10 - negs r2, r2 - movs r1, 0x78 - movs r3, 0x3 - bl CreateSprite - ldr r0, _0804F738 - ldr r1, [r0] - b _0804F74C - .align 2, 0 -_0804F734: .4byte gSpriteTemplate_8216548 -_0804F738: .4byte 0x03004854 -_0804F73C: - mov r5, r8 - ldr r1, [r5] - b _0804F74C -_0804F742: - mov r0, r8 - ldr r1, [r0] - b _0804F74C -_0804F748: - mov r2, r8 - ldr r1, [r2] -_0804F74C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804F7E6 -_0804F754: - bl sub_804F81C - ldr r3, _0804F804 - ldr r4, [r3] - adds r5, r4, 0 - adds r5, 0x56 - movs r2, 0 - movs r1, 0 - movs r0, 0x80 - strh r0, [r5] - movs r5, 0x96 - lsls r5, 1 - adds r0, r4, r5 - str r1, [r0] - ldr r1, _0804F808 - adds r0, r4, r1 - strb r2, [r0] - ldr r0, [r3] - adds r0, 0x7E - strb r2, [r0] - ldr r0, _0804F80C - bl SetMainCallback2 - movs r4, 0 - ldr r0, _0804F810 - ldrh r0, [r0] - cmp r4, r0 - bge _0804F7B8 - movs r5, 0xA0 - lsls r5, 20 - ldr r6, _0804F814 -_0804F792: - ldm r6!, {r0} - lsrs r1, r5, 24 - bl CreateTask - ldr r1, _0804F804 - ldr r1, [r1] - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - adds r1, r4 - strb r0, [r1] - movs r3, 0x80 - lsls r3, 17 - adds r5, r3 - adds r4, 0x1 - ldr r0, _0804F810 - ldrh r0, [r0] - cmp r4, r0 - blt _0804F792 -_0804F7B8: - bl current_map_music_get - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0804F818 - cmp r0, r4 - beq _0804F7D6 - bl current_map_music_get - ldr r1, _0804F804 - ldr r1, [r1] - movs r5, 0xBC - lsls r5, 1 - adds r1, r5 - strh r0, [r1] -_0804F7D6: - adds r0, r4, 0 - bl sub_8075474 - movs r0, 0x35 - bl audio_play - bl sub_804E290 -_0804F7E6: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F804: .4byte 0x03004854 -_0804F808: .4byte 0x0000014b -_0804F80C: .4byte sub_80501FC -_0804F810: .4byte 0x0202e8cc -_0804F814: .4byte gUnknown_08216308 -_0804F818: .4byte 0x00000193 - thumb_func_end sub_804F378 - - thumb_func_start sub_804F81C -sub_804F81C: @ 804F81C - push {lr} - ldr r3, _0804F83C - movs r0, 0 - ldr r1, _0804F840 - movs r2, 0x3 -_0804F826: - strh r0, [r3] - strh r0, [r3, 0x4] - strh r0, [r1] - strh r0, [r1, 0x10] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _0804F826 - pop {r0} - bx r0 - .align 2, 0 -_0804F83C: .4byte 0x03002f90 -_0804F840: .4byte 0x03002a20 - thumb_func_end sub_804F81C - - thumb_func_start sub_804F844 -sub_804F844: @ 804F844 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _0804F884 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xA - ldrsh r1, [r2, r4] - cmp r0, r1 - ble _0804F87C - ldr r0, _0804F888 - movs r4, 0xC - ldrsh r1, [r2, r4] - lsls r1, 1 - adds r0, 0x10 - adds r1, r0 - ldr r0, _0804F88C - strh r0, [r1] - adds r0, r3, 0 - bl DestroyTask -_0804F87C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804F884: .4byte 0x03004b20 -_0804F888: .4byte 0x03002a20 -_0804F88C: .4byte 0x00002345 - thumb_func_end sub_804F844 - - thumb_func_start sub_804F890 -sub_804F890: @ 804F890 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0804F8C0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0804F8C4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804F8C0: .4byte sub_804F844 -_0804F8C4: .4byte 0x03004b20 - thumb_func_end sub_804F890 - - thumb_func_start sub_804F8C8 -sub_804F8C8: @ 804F8C8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0804F934 - ldr r0, [r4] - adds r0, 0x54 - ldrh r0, [r0] - movs r1, 0x1 - bl task_tutorial_oak_boy_girl - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _0804F8E6 - b _0804F9DC -_0804F8E6: - ldr r2, _0804F938 - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - cmp r0, 0 - beq _0804F8FC - b _0804F9EA -_0804F8FC: - ldr r0, [r4] - ldr r1, _0804F93C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0804F9BE - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0804F940 - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - adds r3, r1, 0 - ldr r0, [r4] - adds r0, 0x56 - movs r4, 0 - ldrsh r2, [r0, r4] - ldr r0, _0804F944 - cmp r2, r0 - bgt _0804F964 - cmp r1, 0x4B - bls _0804F950 - ldr r1, _0804F948 - ldr r0, _0804F94C - b _0804F954 - .align 2, 0 -_0804F934: .4byte 0x03004854 -_0804F938: .4byte 0x03004b20 -_0804F93C: .4byte 0x0000014b -_0804F940: .4byte 0x0000028f -_0804F944: .4byte 0x000001f3 -_0804F948: .4byte 0x03002a20 -_0804F94C: .4byte 0x00004523 -_0804F950: - ldr r1, _0804F95C - ldr r0, _0804F960 -_0804F954: - strh r0, [r1, 0x12] - ldr r0, _0804F960 - b _0804F9C2 - .align 2, 0 -_0804F95C: .4byte 0x03002a20 -_0804F960: .4byte 0x00005432 -_0804F964: - ldr r0, _0804F980 - cmp r2, r0 - bgt _0804F992 - cmp r1, 0x50 - bhi _0804F9BE - adds r0, r1, 0 - subs r0, 0x15 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bhi _0804F98C - ldr r1, _0804F984 - ldr r0, _0804F988 - b _0804F9C2 - .align 2, 0 -_0804F980: .4byte 0x000005db -_0804F984: .4byte 0x03002a20 -_0804F988: .4byte 0x00005432 -_0804F98C: - cmp r1, 0x9 - bhi _0804F9C4 - b _0804F9B4 -_0804F992: - cmp r1, 0x5A - bhi _0804F9BE - adds r0, r1, 0 - subs r0, 0x47 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _0804F9B0 - ldr r1, _0804F9A8 - ldr r0, _0804F9AC - b _0804F9C2 - .align 2, 0 -_0804F9A8: .4byte 0x03002a20 -_0804F9AC: .4byte 0x00005432 -_0804F9B0: - cmp r3, 0x1D - bhi _0804F9C4 -_0804F9B4: - movs r0, 0x1 - movs r1, 0x5 - bl sub_804F890 - b _0804F9C4 -_0804F9BE: - ldr r1, _0804F9D0 - ldr r0, _0804F9D4 -_0804F9C2: - strh r0, [r1, 0x12] -_0804F9C4: - ldr r0, _0804F9D8 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _0804F9E8 - .align 2, 0 -_0804F9D0: .4byte 0x03002a20 -_0804F9D4: .4byte 0x00004523 -_0804F9D8: .4byte 0x03004b20 -_0804F9DC: - ldr r0, _0804F9F0 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0 -_0804F9E8: - strh r0, [r1, 0x8] -_0804F9EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804F9F0: .4byte 0x03004b20 - thumb_func_end sub_804F8C8 - - thumb_func_start sub_804F9F4 -sub_804F9F4: @ 804F9F4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, _0804FA78 - ldr r3, [r6] - adds r0, r3, 0 - adds r0, 0x54 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldr r1, _0804FA7C - ands r0, r1 - adds r1, r3, 0 - adds r1, 0xA6 - ldrb r1, [r1] - lsrs r2, r0, 8 - ldr r0, _0804FA80 - adds r1, r0 - ldrb r1, [r1] - adds r0, r1, 0 - adds r0, 0x14 - cmp r2, r0 - bls _0804FB04 - adds r0, 0x14 - cmp r2, r0 - bcs _0804FB04 - ldr r2, _0804FA84 - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r2, r0, r2 - movs r5, 0x8 - ldrsh r0, [r2, r5] - adds r5, r1, 0 - cmp r0, 0 - bne _0804FB12 - ldr r1, _0804FA88 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0804FAF0 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0804FA8C - bl __udivsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - ldr r0, [r6] - adds r0, 0x56 - movs r6, 0 - ldrsh r1, [r0, r6] - ldr r0, _0804FA90 - cmp r1, r0 - bgt _0804FAAC - cmp r2, 0x42 - bls _0804FA9C - ldr r1, _0804FA94 - ldr r0, _0804FA98 - strh r0, [r1, 0x14] - b _0804FAD4 - .align 2, 0 -_0804FA78: .4byte 0x03004854 -_0804FA7C: .4byte 0x0000ffff -_0804FA80: .4byte gUnknown_08216303 -_0804FA84: .4byte 0x03004b20 -_0804FA88: .4byte 0x0000014b -_0804FA8C: .4byte 0x0000028f -_0804FA90: .4byte 0x000001f3 -_0804FA94: .4byte 0x03002a20 -_0804FA98: .4byte 0x00004523 -_0804FA9C: - ldr r1, _0804FAA4 - ldr r0, _0804FAA8 - strh r0, [r1, 0x14] - b _0804FAD4 - .align 2, 0 -_0804FAA4: .4byte 0x03002a20 -_0804FAA8: .4byte 0x00005432 -_0804FAAC: - cmp r2, 0x41 - bls _0804FAB6 - ldr r1, _0804FAE0 - ldr r0, _0804FAE4 - strh r0, [r1, 0x14] -_0804FAB6: - adds r0, r2, 0 - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x18 - bhi _0804FAC8 - ldr r1, _0804FAE0 - ldr r0, _0804FAE8 - strh r0, [r1, 0x14] -_0804FAC8: - cmp r3, 0x9 - bhi _0804FAD4 - movs r0, 0x2 - movs r1, 0x5 - bl sub_804F890 -_0804FAD4: - ldr r0, _0804FAEC - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _0804FB10 - .align 2, 0 -_0804FAE0: .4byte 0x03002a20 -_0804FAE4: .4byte 0x00004523 -_0804FAE8: .4byte 0x00005432 -_0804FAEC: .4byte 0x03004b20 -_0804FAF0: - ldr r0, _0804FAFC - ldr r1, _0804FB00 - strh r1, [r0, 0x14] - movs r0, 0x1 - strh r0, [r2, 0x8] - b _0804FB12 - .align 2, 0 -_0804FAFC: .4byte 0x03002a20 -_0804FB00: .4byte 0x00004523 -_0804FB04: - ldr r0, _0804FB18 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 -_0804FB10: - strh r0, [r1, 0x8] -_0804FB12: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804FB18: .4byte 0x03004b20 - thumb_func_end sub_804F9F4 - - thumb_func_start sub_804FB1C -sub_804FB1C: @ 804FB1C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _0804FB9C - ldr r3, [r5] - adds r0, r3, 0 - adds r0, 0x54 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldr r1, _0804FBA0 - ands r0, r1 - adds r1, r3, 0 - adds r1, 0xA8 - ldrb r1, [r1] - lsrs r2, r0, 8 - ldr r0, _0804FBA4 - adds r1, r0 - ldrb r1, [r1] - adds r0, r1, 0 - adds r0, 0x14 - cmp r2, r0 - bls _0804FC30 - adds r0, 0x14 - cmp r2, r0 - bcs _0804FC30 - ldr r2, _0804FBA8 - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r2, r0, r2 - movs r6, 0x8 - ldrsh r0, [r2, r6] - adds r6, r1, 0 - cmp r0, 0 - bne _0804FC3E - ldr r1, _0804FBAC - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0804FC1C - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0804FBB0 - bl __udivsi3 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, [r5] - adds r0, 0x56 - movs r3, 0 - ldrsh r1, [r0, r3] - ldr r0, _0804FBB4 - cmp r1, r0 - bgt _0804FBD0 - cmp r2, 0x58 - bls _0804FBC0 - ldr r1, _0804FBB8 - ldr r0, _0804FBBC - strh r0, [r1, 0x16] - b _0804FC02 - .align 2, 0 -_0804FB9C: .4byte 0x03004854 -_0804FBA0: .4byte 0x0000ffff -_0804FBA4: .4byte gUnknown_08216303 -_0804FBA8: .4byte 0x03004b20 -_0804FBAC: .4byte 0x0000014b -_0804FBB0: .4byte 0x0000028f -_0804FBB4: .4byte 0x000001f3 -_0804FBB8: .4byte 0x03002a20 -_0804FBBC: .4byte 0x00004523 -_0804FBC0: - ldr r1, _0804FBC8 - ldr r0, _0804FBCC - strh r0, [r1, 0x16] - b _0804FC02 - .align 2, 0 -_0804FBC8: .4byte 0x03002a20 -_0804FBCC: .4byte 0x00005432 -_0804FBD0: - cmp r2, 0x3C - bls _0804FBE4 - ldr r1, _0804FBDC - ldr r0, _0804FBE0 - b _0804FBF4 - .align 2, 0 -_0804FBDC: .4byte 0x03002a20 -_0804FBE0: .4byte 0x00004523 -_0804FBE4: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _0804FBF6 - ldr r1, _0804FC10 - ldr r0, _0804FC14 -_0804FBF4: - strh r0, [r1, 0x16] -_0804FBF6: - cmp r2, 0x4 - bhi _0804FC02 - movs r0, 0x3 - movs r1, 0x5 - bl sub_804F890 -_0804FC02: - ldr r0, _0804FC18 - adds r1, r6, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _0804FC3C - .align 2, 0 -_0804FC10: .4byte 0x03002a20 -_0804FC14: .4byte 0x00005432 -_0804FC18: .4byte 0x03004b20 -_0804FC1C: - ldr r0, _0804FC28 - ldr r1, _0804FC2C - strh r1, [r0, 0x16] - movs r0, 0x1 - strh r0, [r2, 0x8] - b _0804FC3E - .align 2, 0 -_0804FC28: .4byte 0x03002a20 -_0804FC2C: .4byte 0x00004523 -_0804FC30: - ldr r0, _0804FC44 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 -_0804FC3C: - strh r0, [r1, 0x8] -_0804FC3E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804FC44: .4byte 0x03004b20 - thumb_func_end sub_804FB1C - - thumb_func_start sub_804FC48 -sub_804FC48: @ 804FC48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r7, r0, 16 - mov r8, r7 - lsls r1, 24 - ldr r0, _0804FCBC - ldr r4, _0804FCC0 - lsrs r1, 23 - adds r2, r1, r4 - ldrb r6, [r2] - ldr r5, _0804FCC4 - adds r2, r1, r5 - movs r3, 0 - ldrsb r3, [r2, r3] - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 1 - subs r6, r2 - adds r4, 0x1 - adds r4, r1, r4 - ldrb r2, [r4] - adds r5, 0x1 - adds r1, r5 - movs r3, 0 - ldrsb r3, [r1, r3] - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 1 - subs r2, r1 - adds r1, r6, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - ldr r0, _0804FCC8 - cmp r7, r0 - bne _0804FCD4 - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - ldr r5, _0804FCCC - adds r0, r4, r5 - movs r1, 0x2 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, _0804FCD0 - str r0, [r4] - movs r0, 0x28 - bl audio_play - b _0804FD18 - .align 2, 0 -_0804FCBC: .4byte gSpriteTemplate_821645C -_0804FCC0: .4byte gUnknown_082162E4 -_0804FCC4: .4byte gUnknown_082162CC -_0804FCC8: .4byte 0x00004523 -_0804FCCC: .4byte 0x02020004 -_0804FCD0: .4byte sub_8051684 -_0804FCD4: - ldr r0, _0804FCF4 - cmp r7, r0 - bne _0804FCFC - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804FCF8 - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - movs r0, 0x1F - bl audio_play - b _0804FD18 - .align 2, 0 -_0804FCF4: .4byte 0x00005432 -_0804FCF8: .4byte 0x02020004 -_0804FCFC: - ldr r0, _0804FD28 - cmp r8, r0 - bne _0804FD18 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, _0804FD2C - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x20 - bl audio_play -_0804FD18: - bl sub_805156C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FD28: .4byte 0x00002345 -_0804FD2C: .4byte 0x02020004 - thumb_func_end sub_804FC48 - - thumb_func_start sub_804FD30 -sub_804FD30: @ 804FD30 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_804E290 - ldr r0, _0804FD50 - cmp r4, r0 - beq _0804FD64 - cmp r4, r0 - bgt _0804FD58 - ldr r0, _0804FD54 - cmp r4, r0 - beq _0804FE34 - b _0804FE60 - .align 2, 0 -_0804FD50: .4byte 0x00004523 -_0804FD54: .4byte 0x00002345 -_0804FD58: - ldr r0, _0804FD60 - cmp r5, r0 - beq _0804FDFC - b _0804FE60 - .align 2, 0 -_0804FD60: .4byte 0x00005432 -_0804FD64: - ldr r7, _0804FD94 - ldr r4, [r7] - adds r5, r4, 0 - adds r5, 0x56 - ldrh r6, [r5] - movs r0, 0 - ldrsh r1, [r5, r0] - ldr r0, _0804FD98 - cmp r1, r0 - bgt _0804FDA0 - ldr r1, _0804FD9C - adds r0, r4, 0 - adds r0, 0x88 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0xC0 - lsls r0, 1 - bl __divsi3 - adds r0, r6, r0 - strh r0, [r5] - b _0804FE60 - .align 2, 0 -_0804FD94: .4byte 0x03004854 -_0804FD98: .4byte 0x000005db -_0804FD9C: .4byte gUnknown_082165DA -_0804FDA0: - ldr r1, _0804FDF8 - adds r0, r4, 0 - adds r0, 0x88 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - bl __divsi3 - adds r0, r6, r0 - strh r0, [r5] - movs r1, 0xA2 - lsls r1, 1 - adds r4, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - subs r1, 0xA - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8051AC8 - ldr r0, [r7] - movs r1, 0xA3 - lsls r1, 1 - adds r4, r0, r1 - adds r0, 0x56 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - subs r1, 0xA - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8051AC8 - b _0804FE60 - .align 2, 0 -_0804FDF8: .4byte gUnknown_082165DA -_0804FDFC: - ldr r0, _0804FE28 - ldr r2, [r0] - adds r4, r2, 0 - adds r4, 0x56 - ldrh r5, [r4] - movs r0, 0 - ldrsh r1, [r4, r0] - ldr r0, _0804FE2C - cmp r1, r0 - bgt _0804FE60 - ldr r1, _0804FE30 - adds r0, r2, 0 - adds r0, 0x88 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - lsls r0, 1 - bl __divsi3 - adds r0, r5, r0 - b _0804FE5E - .align 2, 0 -_0804FE28: .4byte 0x03004854 -_0804FE2C: .4byte 0x000005db -_0804FE30: .4byte gUnknown_082165DA -_0804FE34: - ldr r0, _0804FE68 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0x56 - ldr r1, _0804FE6C - adds r0, 0x88 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - lsls r0, 1 - bl __divsi3 - ldrh r1, [r4] - subs r1, r0 - strh r1, [r4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - bgt _0804FE60 - movs r0, 0x80 -_0804FE5E: - strh r0, [r4] -_0804FE60: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FE68: .4byte 0x03004854 -_0804FE6C: .4byte gUnknown_082165DA - thumb_func_end sub_804FD30 - - thumb_func_start sub_804FE70 -sub_804FE70: @ 804FE70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _0804FF40 - ldrh r0, [r0] - cmp r0, 0 - beq _0804FEB6 - ldr r3, _0804FF44 - ldrh r0, [r3, 0x4] - ldr r2, _0804FF48 - cmp r0, 0 - beq _0804FE98 - movs r1, 0 - strh r0, [r2, 0x10] - ldr r0, _0804FF4C - strh r0, [r2] - strh r1, [r3, 0x4] -_0804FE98: - ldr r0, _0804FF48 - ldr r3, _0804FF4C - adds r1, r2, 0x2 - adds r2, r0, 0 - adds r2, 0x12 - movs r6, 0x2 -_0804FEA4: - ldrh r0, [r2] - cmp r0, 0 - beq _0804FEAC - strh r3, [r1] -_0804FEAC: - adds r1, 0x2 - adds r2, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _0804FEA4 -_0804FEB6: - movs r6, 0 - ldr r7, _0804FF50 - adds r1, r7, 0 - ldr r0, [r1] - adds r0, 0x88 - ldrb r0, [r0] - cmp r6, r0 - blt _0804FEC8 - b _0805005C -_0804FEC8: - movs r2, 0 - str r2, [sp] - mov r9, r2 - ldr r0, _0804FF48 - adds r0, 0x10 - mov r8, r0 - ldr r1, _0804FF54 - mov r10, r1 -_0804FED8: - ldr r2, [sp] - ldr r1, _0804FF48 - adds r0, r2, r1 - ldrh r1, [r0] - ldr r0, _0804FF4C - cmp r1, r0 - beq _0804FEE8 - b _0805003E -_0804FEE8: - ldr r0, [r7] - adds r0, 0xA2 - adds r0, r2 - ldrh r5, [r0] - mov r2, r8 - ldrh r4, [r2] - ldr r0, _0804FF58 - cmp r4, r0 - bne _0804FF60 - bl sub_804FD30 - ldr r0, [r7] - movs r1, 0x9F - lsls r1, 1 - adds r4, r0, r1 - adds r0, 0x56 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x37 - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - lsls r1, 16 - ldr r0, _0804FF5C - cmp r1, r0 - bls _0804FF26 - movs r0, 0xFA - lsls r0, 2 - strh r0, [r4] -_0804FF26: - lsls r1, r5, 24 - lsrs r1, 24 - ldr r0, _0804FF58 - bl sub_804FC48 - ldr r1, [r7] - movs r0, 0xA6 - lsls r0, 1 - adds r1, r0 - add r1, r9 - ldrh r0, [r1] - adds r0, 0x1 - b _0804FFCA - .align 2, 0 -_0804FF40: .4byte 0x0202e8cc -_0804FF44: .4byte 0x03002f90 -_0804FF48: .4byte 0x03002a20 -_0804FF4C: .4byte 0x00004444 -_0804FF50: .4byte 0x03004854 -_0804FF54: .4byte 0x00005432 -_0804FF58: .4byte 0x00004523 -_0804FF5C: .4byte 0x03e70000 -_0804FF60: - cmp r4, r10 - bne _0804FF9E - mov r0, r10 - bl sub_804FD30 - ldr r0, [r7] - movs r1, 0x9F - lsls r1, 1 - adds r4, r0, r1 - adds r0, 0x56 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x46 - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - lsls r1, r5, 24 - lsrs r1, 24 - mov r0, r10 - bl sub_804FC48 - ldr r1, [r7] - movs r0, 0xA7 - lsls r0, 1 - adds r1, r0 - add r1, r9 - ldrh r0, [r1] - adds r0, 0x1 - b _0804FFCA -_0804FF9E: - ldr r0, _08050018 - cmp r4, r0 - bne _0804FFD6 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_804FC48 - adds r0, r4, 0 - bl sub_804FD30 - ldr r0, [r7] - movs r1, 0xA8 - lsls r1, 1 - adds r0, r1 - mov r2, r9 - adds r1, r0, r2 - ldrh r2, [r1] - ldr r0, _0805001C - cmp r2, r0 - bhi _0804FFCC - adds r0, r2, 0x1 -_0804FFCA: - strh r0, [r1] -_0804FFCC: - mov r0, r8 - ldrh r1, [r0] - ldr r0, _08050018 - cmp r1, r0 - beq _0804FFE4 -_0804FFD6: - mov r1, r8 - ldrh r0, [r1] - ldr r2, _08050020 - cmp r0, r2 - beq _0804FFE4 - cmp r0, r10 - bne _0805003E -_0804FFE4: - ldr r0, _08050024 - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0x56 - movs r0, 0 - ldrsh r1, [r2, r0] - ldr r0, _08050028 - cmp r1, r0 - ble _08050034 - adds r0, r1, 0 - ldr r2, _0805002C - adds r0, r2 - movs r1, 0x14 - bl __divsi3 - adds r1, r0, 0 - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08050030 - bl m4aMPlayTempoControl - b _0805003E - .align 2, 0 -_08050018: .4byte 0x00002345 -_0805001C: .4byte 0x000003e6 -_08050020: .4byte 0x00004523 -_08050024: .4byte 0x03004854 -_08050028: .4byte 0x000005dc -_0805002C: .4byte 0xfffffd12 -_08050030: .4byte 0x03007380 -_08050034: - ldr r0, _08050098 - movs r1, 0x80 - lsls r1, 1 - bl m4aMPlayTempoControl -_0805003E: - ldr r1, [sp] - adds r1, 0x2 - str r1, [sp] - movs r2, 0x6 - add r9, r2 - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - ldr r7, _0805009C - ldr r0, [r7] - adds r0, 0x88 - ldrb r0, [r0] - cmp r6, r0 - bge _0805005C - b _0804FED8 -_0805005C: - ldr r0, _080500A0 - ldrh r0, [r0] - cmp r0, 0 - beq _08050088 - movs r6, 0 - ldr r3, _0805009C - ldr r0, [r3] - adds r0, 0x88 - ldrb r0, [r0] - cmp r6, r0 - bge _08050088 - movs r2, 0 - ldr r1, _080500A4 -_08050076: - strh r2, [r1] - strh r2, [r1, 0x10] - adds r1, 0x2 - adds r6, 0x1 - ldr r0, [r3] - adds r0, 0x88 - ldrb r0, [r0] - cmp r6, r0 - blt _08050076 -_08050088: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08050098: .4byte 0x03007380 -_0805009C: .4byte 0x03004854 -_080500A0: .4byte 0x0202e8cc -_080500A4: .4byte 0x03002a20 - thumb_func_end sub_804FE70 - - thumb_func_start sub_80500A8 -sub_80500A8: @ 80500A8 - push {r4-r6,lr} - movs r6, 0 - ldr r5, _080500EC - ldr r4, [r5] - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 23 - adds r4, 0xA2 - adds r4, r0 - ldrb r3, [r4] - ldr r0, [r5] - adds r0, 0x6F - ldrb r0, [r0] - cmp r0, 0 - bne _0805018A - ldr r0, _080500F0 - ldrb r0, [r0, 0x13] - cmp r0, 0x2 - bne _080500FC - ldr r2, _080500F4 - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805010A - ldrh r0, [r2, 0x28] - ldr r1, _080500F8 - bics r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r6, r0, 31 - b _0805010A - .align 2, 0 -_080500EC: .4byte 0x03004854 -_080500F0: .4byte 0x02024ea4 -_080500F4: .4byte 0x03001770 -_080500F8: .4byte 0x00000201 -_080500FC: - ldr r0, _0805015C - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805010A - movs r6, 0x1 -_0805010A: - cmp r6, 0 - beq _0805018A - ldr r4, _08050160 - ldr r1, [r4] - lsls r2, r3, 1 - adds r0, r1, 0 - adds r0, 0x9A - adds r0, r2 - adds r1, 0x5C - ldrh r0, [r0] - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08050164 - adds r0, r1 - adds r1, r3, 0x4 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - ldr r0, [r4] - adds r0, 0x54 - ldrh r4, [r0] - bl GetMultiplayerId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl task_tutorial_oak_boy_girl - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08050170 - ldr r1, _08050168 - ldr r0, _0805016C - b _08050188 - .align 2, 0 -_0805015C: .4byte 0x03001770 -_08050160: .4byte 0x03004854 -_08050164: .4byte 0x02020004 -_08050168: .4byte 0x03002f90 -_0805016C: .4byte 0x00004523 -_08050170: - cmp r0, 0x1 - bne _08050184 - ldr r1, _0805017C - ldr r0, _08050180 - b _08050188 - .align 2, 0 -_0805017C: .4byte 0x03002f90 -_08050180: .4byte 0x00005432 -_08050184: - ldr r1, _080501E4 - ldr r0, _080501E8 -_08050188: - strh r0, [r1, 0x4] -_0805018A: - ldr r2, _080501EC - ldr r1, [r2] - adds r1, 0x7E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _080501BA - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0x56 - ldrh r3, [r1] - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, 0x80 - ble _080501B2 - subs r0, r3, 0x1 - strh r0, [r1] -_080501B2: - ldr r0, [r2] - adds r0, 0x7E - movs r1, 0 - strb r1, [r0] -_080501BA: - ldr r0, _080501F0 - ldrb r0, [r0] - cmp r0, 0 - beq _080501DE - ldr r0, _080501F4 - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080501DE - ldr r0, [r2] - ldr r1, _080501F8 - adds r2, r0, r1 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2] -_080501DE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080501E4: .4byte 0x03002f90 -_080501E8: .4byte 0x00002345 -_080501EC: .4byte 0x03004854 -_080501F0: .4byte 0x020297ed -_080501F4: .4byte 0x03001770 -_080501F8: .4byte 0x0000014b - thumb_func_end sub_80500A8 - - thumb_func_start sub_80501FC -sub_80501FC: @ 80501FC - push {r4-r6,lr} - bl sub_8051474 - ldr r4, _08050294 - ldr r0, [r4] - movs r1, 0x96 - lsls r1, 1 - adds r2, r0, r1 - ldr r1, [r2] - ldr r0, _08050298 - cmp r1, r0 - bhi _08050218 - adds r0, r1, 0x1 - str r0, [r2] -_08050218: - bl sub_80500A8 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x56 - ldrh r0, [r0] - movs r5, 0x9F - lsls r5, 1 - adds r1, r5 - ldrh r1, [r1] - bl SetLinkDebugValues - bl sub_804FE70 - ldr r0, [r4] - adds r0, r5 - ldrh r0, [r0] - movs r6, 0xFA - lsls r6, 2 - adds r1, r6, 0 - bl sub_805194C - ldr r0, [r4] - adds r0, 0x56 - ldrh r0, [r0] - bl sub_8051A3C - bl sub_8051B18 - bl sub_805123C - ldr r2, [r4] - adds r3, r2, 0 - adds r3, 0x6F - ldrb r0, [r3] - cmp r0, 0 - bne _0805027E - movs r1, 0xA0 - lsls r1, 1 - adds r0, r2, r1 - ldrh r1, [r0] - ldr r0, _0805029C - cmp r1, r0 - bls _0805027E - adds r0, r2, r5 - strh r6, [r0] - movs r0, 0x1 - strb r0, [r3] - ldr r0, _080502A0 - bl SetMainCallback2 -_0805027E: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08050294: .4byte 0x03004854 -_08050298: .4byte 0x00057e03 -_0805029C: .4byte 0x000003e7 -_080502A0: .4byte sub_8050954 - thumb_func_end sub_80501FC - - thumb_func_start help_system_is_not_first_time -help_system_is_not_first_time: @ 80502A4 - push {r4,r5,lr} - lsls r1, 24 - lsls r2, 24 - lsrs r1, 20 - adds r4, r1, r0 - lsrs r2, 20 - adds r5, r2, r0 - ldrh r0, [r4] - ldrh r1, [r5] - cmp r0, r1 - bne _080502E2 - adds r0, r4, 0x2 - adds r1, r5, 0x2 - bl StringCompare - cmp r0, 0 - bne _080502F0 - ldr r0, [r4, 0x8] - ldr r2, _080502E8 - ands r0, r2 - ldr r1, [r5, 0x8] - ands r1, r2 - cmp r0, r1 - bne _080502F0 - ldr r0, [r4, 0xC] - ldr r2, _080502EC - ands r0, r2 - ldr r1, [r5, 0xC] - ands r1, r2 - cmp r0, r1 - bne _080502F0 -_080502E2: - movs r0, 0x1 - b _080502F2 - .align 2, 0 -_080502E8: .4byte 0xffffff00 -_080502EC: .4byte 0x00ffffff -_080502F0: - movs r0, 0 -_080502F2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end help_system_is_not_first_time - - thumb_func_start sub_80502F8 -sub_80502F8: @ 80502F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r10, r0 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - mov r2, sp - movs r4, 0x5 -_08050314: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08050314 - movs r6, 0 - mov r1, sp - movs r4, 0x4 -_08050328: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08050332 - adds r6, 0x1 -_08050332: - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08050328 - cmp r6, 0x5 - beq _08050386 - cmp r3, 0x3 - bhi _08050386 - movs r4, 0 - ldr r3, [sp, 0x10] - cmp r4, r3 - bge _0805039E - mov r3, r10 -_0805034C: - movs r6, 0 - ldr r7, [sp, 0x10] - cmp r6, r7 - bge _08050394 - mov r9, r3 - mov r5, r10 - lsls r0, r4, 24 - mov r8, r0 -_0805035C: - mov r1, r9 - ldrh r0, [r1] - ldrh r2, [r5] - cmp r0, r2 - bne _0805038A - cmp r4, r6 - beq _0805038A - cmp r0, 0xAF - bne _08050386 - lsls r2, r6, 24 - lsrs r2, 24 - mov r0, r10 - mov r7, r8 - lsrs r1, r7, 24 - str r3, [sp, 0xC] - bl help_system_is_not_first_time - lsls r0, 24 - ldr r3, [sp, 0xC] - cmp r0, 0 - beq _0805038A -_08050386: - movs r0, 0xC - b _080504DE -_0805038A: - adds r5, 0x10 - adds r6, 0x1 - ldr r0, [sp, 0x10] - cmp r6, r0 - blt _0805035C -_08050394: - adds r3, 0x10 - adds r4, 0x1 - ldr r1, [sp, 0x10] - cmp r4, r1 - blt _0805034C -_0805039E: - movs r2, 0 - mov r1, sp - movs r4, 0x4 -_080503A4: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _080503B2 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080503B2: - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080503A4 - cmp r2, 0x3 - bls _080503C2 - movs r0, 0xD - b _080504DE -_080503C2: - cmp r2, 0x3 - bne _080503CA - movs r0, 0xB - b _080504DE -_080503CA: - movs r4, 0 - mov r1, sp -_080503CE: - movs r7, 0 - ldrsh r0, [r1, r7] - cmp r0, 0x32 - ble _080503D8 - b _080504D8 -_080503D8: - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x4 - ble _080503CE - cmp r2, 0x1 - bne _0805042A - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _080503F2 - movs r0, 0x1 - b _080504DE -_080503F2: - mov r0, sp - ldrh r0, [r0, 0x2] - lsls r0, 16 - cmp r0, 0 - ble _08050400 - movs r0, 0x2 - b _080504DE -_08050400: - mov r0, sp - movs r3, 0x4 - ldrsh r0, [r0, r3] - cmp r0, 0 - ble _0805040E - movs r0, 0x3 - b _080504DE -_0805040E: - mov r0, sp - movs r4, 0x6 - ldrsh r0, [r0, r4] - cmp r0, 0 - ble _0805041C - movs r0, 0x4 - b _080504DE -_0805041C: - mov r0, sp - movs r7, 0x8 - ldrsh r0, [r0, r7] - cmp r0, 0 - ble _0805042A - movs r0, 0x5 - b _080504DE -_0805042A: - cmp r2, 0x2 - bne _080504DC - movs r4, 0 - ldr r5, _08050474 - mov r1, sp - adds r2, r5, 0 -_08050436: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _08050442 - strh r4, [r2] - adds r2, 0x2 -_08050442: - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x4 - ble _08050436 - movs r4, 0 - ldrsh r3, [r5, r4] - lsls r0, r3, 1 - mov r7, sp - adds r1, r7, r0 - movs r0, 0x2 - ldrsh r2, [r5, r0] - lsls r0, r2, 1 - add r0, sp - movs r4, 0 - ldrsh r1, [r1, r4] - movs r7, 0 - ldrsh r0, [r0, r7] - cmp r1, r0 - blt _08050498 - adds r0, r3, 0 - cmp r0, 0 - bne _08050478 - lsls r0, r2, 16 - b _080504A2 - .align 2, 0 -_08050474: .4byte 0x03000520 -_08050478: - cmp r0, 0x1 - bne _08050480 - lsls r0, r2, 16 - b _080504AE -_08050480: - cmp r0, 0x2 - bne _08050488 - lsls r0, r2, 16 - b _080504BA -_08050488: - cmp r0, 0x3 - bne _08050490 - lsls r0, r2, 16 - b _080504C6 -_08050490: - cmp r0, 0x4 - bne _080504DC - lsls r0, r2, 16 - b _080504D2 -_08050498: - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080504A8 - lsls r0, r3, 16 -_080504A2: - movs r1, 0x6 - orrs r0, r1 - b _080504DE -_080504A8: - cmp r0, 0x1 - bne _080504B4 - lsls r0, r3, 16 -_080504AE: - movs r1, 0x7 - orrs r0, r1 - b _080504DE -_080504B4: - cmp r0, 0x2 - bne _080504C0 - lsls r0, r3, 16 -_080504BA: - movs r1, 0x8 - orrs r0, r1 - b _080504DE -_080504C0: - cmp r0, 0x3 - bne _080504CC - lsls r0, r3, 16 -_080504C6: - movs r1, 0x9 - orrs r0, r1 - b _080504DE -_080504CC: - cmp r0, 0x4 - bne _080504DC - lsls r0, r3, 16 -_080504D2: - movs r1, 0xA - orrs r0, r1 - b _080504DE -_080504D8: - movs r0, 0xE - b _080504DE -_080504DC: - movs r0, 0 -_080504DE: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80502F8 - - thumb_func_start sub_80504F0 -sub_80504F0: @ 80504F0 - ldr r1, _080504F8 - strh r0, [r1] - bx lr - .align 2, 0 -_080504F8: .4byte 0x0300052c - thumb_func_end sub_80504F0 - - thumb_func_start unref_sub_80504FC -unref_sub_80504FC: @ 80504FC - ldr r0, _08050504 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_08050504: .4byte 0x0300052c - thumb_func_end unref_sub_80504FC - - thumb_func_start sub_8050508 -sub_8050508: @ 8050508 - ldr r1, _08050510 - strh r0, [r1] - bx lr - .align 2, 0 -_08050510: .4byte 0x0300052e - thumb_func_end sub_8050508 - - thumb_func_start unref_sub_8050514 -unref_sub_8050514: @ 8050514 - ldr r0, _0805051C - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_0805051C: .4byte 0x0300052e - thumb_func_end unref_sub_8050514 - - thumb_func_start sub_8050520 -sub_8050520: @ 8050520 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r0, [sp] - mov r8, r1 - str r3, [sp, 0x4] - ldr r0, [sp, 0x30] - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - ldr r7, _080505DC - adds r2, r7, 0 - movs r1, 0 - adds r0, r7, 0 - adds r0, 0xA -_0805054A: - strh r1, [r0] - subs r0, 0x2 - cmp r0, r2 - bge _0805054A - movs r6, 0 - cmp r6, r9 - bge _08050580 - ldr r0, _080505DC - mov r12, r0 - ldr r5, [sp] - adds r5, 0x9 -_08050560: - movs r3, 0 - adds r4, r5, 0 - mov r2, r12 -_08050566: - adds r1, r4, r3 - ldrh r0, [r2] - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x5 - ble _08050566 - adds r5, 0x10 - adds r6, 0x1 - cmp r6, r9 - blt _08050560 -_08050580: - movs r1, 0 - ldrsh r3, [r7, r1] - ldrh r0, [r7] - ldrh r1, [r7, 0x2] - subs r0, r1 - strh r0, [r7] - ldrh r0, [r7, 0x4] - subs r1, r0 - strh r1, [r7, 0x2] - ldrh r1, [r7, 0x6] - subs r0, r1 - strh r0, [r7, 0x4] - ldrh r0, [r7, 0x8] - subs r1, r0 - strh r1, [r7, 0x6] - subs r0, r3 - strh r0, [r7, 0x8] - movs r3, 0 - movs r2, 0 - adds r1, r7, 0 - movs r6, 0x4 -_080505AA: - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, 0 - bge _080505B6 - strh r2, [r1] - adds r3, 0x1 -_080505B6: - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080505AA - lsls r0, r3, 24 - lsrs r0, 24 - mov r10, r0 - movs r4, 0 - ldr r1, _080505DC - movs r6, 0x4 -_080505CA: - ldrh r2, [r1] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0 - ble _080505E4 - cmp r0, r3 - bge _080505E0 - strh r4, [r1] - b _080505E4 - .align 2, 0 -_080505DC: .4byte 0x03000510 -_080505E0: - subs r0, r2, r3 - strh r0, [r1] -_080505E4: - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080505CA - ldr r1, _080506C4 - ldr r2, _080506C8 - movs r6, 0x4 -_080505F2: - movs r3, 0 - ldrsh r0, [r1, r3] - stm r2!, {r0} - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080505F2 - ldr r1, _080506CC - ldr r0, [sp, 0x8] - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - adds r3, r0, 0 - adds r3, 0x64 - ldr r4, _080506D0 - str r3, [r4] - movs r6, 0x4 -_08050616: - movs r0, 0 - ldrsh r5, [r7, r0] - adds r0, r5, 0 - muls r0, r3 - movs r1, 0xA - str r3, [sp, 0xC] - bl __divsi3 - adds r5, r0, 0 - movs r1, 0xA - bl __modsi3 - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 - ldr r3, [sp, 0xC] - cmp r4, 0x4 - ble _08050642 - adds r5, 0x1 -_08050642: - strh r5, [r7] - adds r7, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08050616 - ldr r1, _080506C4 - ldr r2, _080506D4 - movs r6, 0x4 -_08050652: - movs r3, 0 - ldrsh r0, [r1, r3] - stm r2!, {r0} - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08050652 - ldr r4, _080506C4 - ldr r0, [sp] - adds r1, r4, 0 - mov r2, r9 - mov r3, r10 - bl sub_80502F8 - mov r5, r8 - strb r0, [r5] - movs r1, 0xA - ldrsh r0, [r4, r1] - mov r1, r9 - bl __divsi3 - mov r3, r9 - subs r0, r3 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _0805068C - movs r0, 0 - strh r0, [r4, 0xA] -_0805068C: - mov r5, r8 - ldrb r0, [r5] - cmp r0, 0xC - bne _080506E6 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - movs r6, 0 - ldr r0, _080506D8 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0 - movs r4, 0x1 - movs r3, 0x2 -_080506B4: - adds r2, r0, 0 - asrs r2, r6 - ands r2, r4 - cmp r2, 0 - beq _080506DC - strh r3, [r1] - b _080506DE - .align 2, 0 -_080506C4: .4byte 0x03000510 -_080506C8: .4byte 0x03000530 -_080506CC: .4byte 0x0000014d -_080506D0: .4byte 0x0300055c -_080506D4: .4byte 0x03000548 -_080506D8: .4byte gUnknown_082165DF -_080506DC: - strh r2, [r1] -_080506DE: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x4 - ble _080506B4 -_080506E6: - ldr r7, _08050740 - movs r2, 0xFF - adds r1, r7, 0 - movs r6, 0x5 -_080506EE: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0xFF - ble _080506F8 - strh r2, [r1] -_080506F8: - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080506EE - ldrh r0, [r7] - mov r4, r8 - strb r0, [r4, 0x1] - ldrh r0, [r7, 0x2] - strb r0, [r4, 0x2] - ldrh r0, [r7, 0x4] - strb r0, [r4, 0x3] - ldrh r0, [r7, 0x6] - strb r0, [r4, 0x4] - ldrh r0, [r7, 0x8] - strb r0, [r4, 0x5] - ldrh r0, [r7, 0xA] - strb r0, [r4, 0x6] - movs r6, 0 - adds r2, r7, 0 -_0805071E: - ldr r5, [sp, 0x4] - adds r1, r5, r6 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r6, 0x1 - cmp r6, 0x5 - ble _0805071E - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08050740: .4byte 0x03000510 - thumb_func_end sub_8050520 - - thumb_func_start sub_8050744 -sub_8050744: @ 8050744 - push {r4,lr} - sub sp, 0x4 - ldr r4, [sp, 0xC] - lsls r2, 24 - lsrs r2, 24 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp] - bl sub_8050520 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8050744 - - thumb_func_start sub_8050760 -sub_8050760: @ 8050760 - push {r4-r6,lr} - ldr r0, _08050780 - ldr r0, [r0] - movs r2, 0x96 - lsls r2, 1 - adds r1, r0, r2 - ldrh r1, [r1] - adds r0, 0x5A - ldrh r4, [r0] - movs r2, 0 - ldr r5, _08050784 - cmp r1, r5 - bhi _08050788 - movs r2, 0x5 - b _080507DA - .align 2, 0 -_08050780: .4byte 0x03004854 -_08050784: .4byte 0x00000383 -_08050788: - ldr r3, _0805079C - adds r0, r1, r3 - lsls r0, 16 - lsrs r0, 16 - ldr r3, _080507A0 - cmp r0, r3 - bhi _080507A4 - movs r2, 0x4 - b _080507DA - .align 2, 0 -_0805079C: .4byte 0xfffffc7c -_080507A0: .4byte 0x00000257 -_080507A4: - ldr r6, _080507B4 - adds r0, r1, r6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r3 - bhi _080507B8 - movs r2, 0x3 - b _080507DA - .align 2, 0 -_080507B4: .4byte 0xfffffa24 -_080507B8: - ldr r3, _080507C8 - adds r0, r1, r3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bhi _080507CC - movs r2, 0x2 - b _080507DA - .align 2, 0 -_080507C8: .4byte 0xfffff7cc -_080507CC: - ldr r6, _080507F8 - adds r0, r1, r6 - lsls r0, 16 - ldr r1, _080507FC - cmp r0, r1 - bhi _080507DA - movs r2, 0x1 -_080507DA: - lsls r0, r2, 16 - asrs r0, 16 - bl sub_8050508 - movs r2, 0 - cmp r4, 0x40 - bhi _080508BC - adds r0, r4, 0 - subs r0, 0x32 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08050804 - ldr r2, _08050800 - b _080508BC - .align 2, 0 -_080507F8: .4byte 0xfffff31c -_080507FC: .4byte 0x012b0000 -_08050800: .4byte 0x0000ffff -_08050804: - adds r0, r4, 0 - subs r0, 0x64 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08050818 - ldr r2, _08050814 - b _080508BC - .align 2, 0 -_08050814: .4byte 0x0000fffe -_08050818: - adds r0, r4, 0 - subs r0, 0x96 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _0805082C - ldr r2, _08050828 - b _080508BC - .align 2, 0 -_08050828: .4byte 0x0000fffd -_0805082C: - adds r0, r4, 0 - subs r0, 0xC8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08050840 - ldr r2, _0805083C - b _080508BC - .align 2, 0 -_0805083C: .4byte 0x0000fffc -_08050840: - adds r0, r4, 0 - subs r0, 0xFA - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08050854 - ldr r2, _08050850 - b _080508BC - .align 2, 0 -_08050850: .4byte 0x0000fffb -_08050854: - ldr r1, _08050864 - adds r0, r4, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _0805086C - ldr r2, _08050868 - b _080508BC - .align 2, 0 -_08050864: .4byte 0xfffffea2 -_08050868: .4byte 0x0000fffa -_0805086C: - ldr r3, _0805087C - adds r0, r4, r3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08050884 - ldr r2, _08050880 - b _080508BC - .align 2, 0 -_0805087C: .4byte 0xfffffe70 -_08050880: .4byte 0x0000fff9 -_08050884: - ldr r6, _08050894 - adds r0, r4, r6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _0805089C - ldr r2, _08050898 - b _080508BC - .align 2, 0 -_08050894: .4byte 0xfffffe0c -_08050898: .4byte 0x0000fff8 -_0805089C: - ldr r1, _080508AC - adds r0, r4, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _080508B4 - ldr r2, _080508B0 - b _080508BC - .align 2, 0 -_080508AC: .4byte 0xfffffdda -_080508B0: .4byte 0x0000fff7 -_080508B4: - ldr r0, _080508CC - cmp r4, r0 - bls _080508BC - ldr r2, _080508D0 -_080508BC: - lsls r0, r2, 16 - asrs r0, 16 - bl sub_80504F0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080508CC: .4byte 0x00000257 -_080508D0: .4byte 0x0000fff6 - thumb_func_end sub_8050760 - - thumb_func_start sub_80508D4 -sub_80508D4: @ 80508D4 - push {lr} - ldr r2, _080508F8 - ldr r1, [r2] - adds r1, 0xAA - strb r0, [r1] - ldr r0, [r2] - adds r0, 0xAA - ldrb r1, [r0] - lsls r1, 28 - movs r0, 0x90 - lsls r0, 23 - adds r1, r0 - lsrs r1, 24 - movs r0, 0xC0 - bl sub_814A880 - pop {r0} - bx r0 - .align 2, 0 -_080508F8: .4byte 0x03004854 - thumb_func_end sub_80508D4 - - thumb_func_start sub_80508FC -sub_80508FC: @ 80508FC - push {r4,lr} - sub sp, 0x4 - ldr r4, _08050944 - ldr r0, [r4] - adds r0, 0xAA - movs r1, 0 - strb r1, [r0] - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1C - movs r3, 0xD - bl DrawDefaultWindow - ldr r1, _08050948 - ldr r3, _0805094C - movs r0, 0x20 - str r0, [sp] - movs r0, 0 - movs r2, 0xC - bl sub_814A5C0 - ldr r0, _08050950 - movs r1, 0x18 - movs r2, 0x9 - bl Print - ldr r0, [r4] - adds r0, 0xAA - ldrb r0, [r0] - bl sub_80508D4 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08050944: .4byte 0x03004854 -_08050948: .4byte 0x0000ffff -_0805094C: .4byte 0x00002d9f -_08050950: .4byte gUnknown_0842D2C5 - thumb_func_end sub_80508FC - - thumb_func_start sub_8050954 -sub_8050954: @ 8050954 - push {r4-r7,lr} - bl sub_8051474 - bl GetMultiplayerId - ldr r0, _08050978 - ldr r0, [r0] - adds r0, 0x6F - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0xC - bls _0805096E - b _08050CB6 -_0805096E: - lsls r0, 2 - ldr r1, _0805097C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08050978: .4byte 0x03004854 -_0805097C: .4byte _08050980 - .align 2, 0 -_08050980: - .4byte _080509B4 - .4byte _080509F8 - .4byte _08050A4C - .4byte _08050A94 - .4byte _08050AD0 - .4byte _08050ADE - .4byte _08050B08 - .4byte _08050B34 - .4byte _08050B42 - .4byte _08050B58 - .4byte _08050BE0 - .4byte _08050C64 - .4byte _08050C98 -_080509B4: - bl ClearLinkCallback - ldr r0, _080509C8 - movs r1, 0x80 - lsls r1, 1 - bl m4aMPlayTempoControl - movs r4, 0 - b _080509E4 - .align 2, 0 -_080509C8: .4byte 0x03007380 -_080509CC: - ldr r0, _080509F0 - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - bl DestroyTask - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080509E4: - ldr r0, _080509F4 - ldrh r0, [r0] - cmp r4, r0 - bcc _080509CC - b _08050C82 - .align 2, 0 -_080509F0: .4byte 0x03004854 -_080509F4: .4byte 0x0202e8cc -_080509F8: - ldr r1, _08050A24 - ldr r3, [r1] - adds r2, r3, 0 - adds r2, 0x56 - ldrh r0, [r2] - subs r0, 0x20 - strh r0, [r2] - lsls r0, 16 - adds r4, r1, 0 - cmp r0, 0 - bgt _08050A40 - movs r0, 0 - strh r0, [r2] - ldr r0, _08050A28 - ldrb r0, [r0] - cmp r0, 0 - beq _08050A2C - adds r1, r3, 0 - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - b _08050A32 - .align 2, 0 -_08050A24: .4byte 0x03004854 -_08050A28: .4byte 0x03002fa4 -_08050A2C: - adds r1, r3, 0 - adds r1, 0x6F - movs r0, 0x5 -_08050A32: - strb r0, [r1] - ldr r0, [r4] - movs r1, 0 - strb r1, [r0] - ldr r0, _08050A48 - bl m4aMPlayStop -_08050A40: - bl sub_804E290 - b _08050CB6 - .align 2, 0 -_08050A48: .4byte 0x03007400 -_08050A4C: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _08050A58 - b _08050C82 -_08050A58: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _08050A64 - b _08050CB6 -_08050A64: - ldr r4, _08050A90 - ldr r3, [r4] - movs r2, 0xDE - lsls r2, 1 - adds r1, r3, r2 - movs r5, 0x96 - lsls r5, 1 - adds r0, r3, r5 - ldr r0, [r0] - str r0, [r1] - adds r0, r3, 0 - adds r0, 0x5A - ldrh r2, [r0] - adds r5, 0x94 - adds r0, r3, r5 - strh r2, [r0] - movs r0, 0 - movs r2, 0x28 - bl SendBlock - ldr r1, [r4] - b _08050C86 - .align 2, 0 -_08050A90: .4byte 0x03004854 -_08050A94: - bl GetBlockRecievedStatus - lsls r0, 24 - cmp r0, 0 - bne _08050AA0 - b _08050CB6 -_08050AA0: - ldr r2, _08050AC8 - ldr r0, _08050ACC - ldr r3, [r0] - ldrh r0, [r2, 0x4] - adds r1, r3, 0 - adds r1, 0x5A - strh r0, [r1] - movs r0, 0x96 - lsls r0, 1 - adds r1, r3, r0 - ldr r0, [r2] - str r0, [r1] - adds r1, r3, 0 - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl ResetBlockReceivedFlags - b _08050CB6 - .align 2, 0 -_08050AC8: .4byte 0x03002b80 -_08050ACC: .4byte 0x03004854 -_08050AD0: - bl sub_8052228 - lsls r0, 24 - cmp r0, 0 - bne _08050ADC - b _08050CB6 -_08050ADC: - b _08050C82 -_08050ADE: - bl sub_8051C58 - lsls r0, 24 - cmp r0, 0 - bne _08050AEA - b _08050CB6 -_08050AEA: - ldr r0, _08050AFC - ldrb r0, [r0] - cmp r0, 0 - bne _08050B00 - movs r0, 0x22 - bl sav12_xor_increment - b _08050C82 - .align 2, 0 -_08050AFC: .4byte 0x03004834 -_08050B00: - movs r0, 0x21 - bl sav12_xor_increment - b _08050C82 -_08050B08: - ldr r0, _08050B2C - ldr r1, [r0] - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl DrawDefaultWindow - ldr r0, _08050B30 - movs r1, 0x1 - movs r2, 0xF - bl AddTextPrinterWithCallbackForMessage - b _08050CB6 - .align 2, 0 -_08050B2C: .4byte 0x03004854 -_08050B30: .4byte gUnknown_0842D3B5 -_08050B34: - bl sub_8072080 - lsls r0, 24 - cmp r0, 0 - bne _08050B40 - b _08050CB6 -_08050B40: - b _08050C82 -_08050B42: - ldr r4, _08050B54 - ldr r0, [r4] - adds r0, 0xAA - movs r1, 0 - strb r1, [r0] - bl sub_80508FC - ldr r1, [r4] - b _08050C86 - .align 2, 0 -_08050B54: .4byte 0x03004854 -_08050B58: - ldr r0, _08050B80 - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08050B88 - ldr r0, _08050B84 - ldr r0, [r0] - adds r0, 0xAA - ldrb r0, [r0] - cmp r0, 0 - beq _08050B76 - movs r0, 0x5 - bl audio_play -_08050B76: - movs r0, 0 - bl sub_80508D4 - b _08050CB6 - .align 2, 0 -_08050B80: .4byte 0x03001770 -_08050B84: .4byte 0x03004854 -_08050B88: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08050BA8 - ldr r0, _08050BA4 - ldr r0, [r0] - adds r0, 0xAA - ldrb r0, [r0] - cmp r0, 0x1 - beq _08050BD4 - movs r0, 0x5 - bl audio_play - b _08050BD4 - .align 2, 0 -_08050BA4: .4byte 0x03004854 -_08050BA8: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08050BB8 - movs r0, 0x5 - bl audio_play - b _08050C82 -_08050BB8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08050BC2 - b _08050CB6 -_08050BC2: - movs r0, 0x5 - bl audio_play - ldr r0, _08050BDC - ldr r1, [r0] - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08050BD4: - movs r0, 0x1 - bl sub_80508D4 - b _08050CB6 - .align 2, 0 -_08050BDC: .4byte 0x03004854 -_08050BE0: - ldr r6, _08050C10 - movs r7, 0 - ldr r0, _08050C14 - strh r0, [r6] - ldr r4, _08050C18 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xAA - ldrb r5, [r0] - cmp r5, 0 - bne _08050C50 - movs r0, 0x4 - bl IsBagPocketNonEmpty - lsls r0, 24 - cmp r0, 0 - bne _08050C20 - ldr r0, [r4] - adds r0, 0x7C - movs r1, 0x2 - strh r1, [r0] - ldr r0, _08050C1C - b _08050C48 - .align 2, 0 -_08050C10: .4byte 0x03002f90 -_08050C14: .4byte 0x00002fff -_08050C18: .4byte 0x03004854 -_08050C1C: .4byte 0x00009999 -_08050C20: - bl sub_810CA00 - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08050C40 - ldr r0, [r4] - adds r0, 0x7C - movs r1, 0x3 - strh r1, [r0] - ldr r0, _08050C3C - b _08050C48 - .align 2, 0 -_08050C3C: .4byte 0x0000aaaa -_08050C40: - ldr r0, [r4] - adds r0, 0x7C - strh r5, [r0] - ldr r0, _08050C4C -_08050C48: - strh r0, [r6, 0x2] - b _08050C82 - .align 2, 0 -_08050C4C: .4byte 0x00007779 -_08050C50: - adds r1, r2, 0 - adds r1, 0x7C - movs r0, 0x1 - strh r0, [r1] - ldr r0, _08050C60 - strh r0, [r6, 0x2] - subs r1, 0xD - b _08050C88 - .align 2, 0 -_08050C60: .4byte 0x00008888 -_08050C64: - ldr r0, _08050C70 - ldrb r0, [r0] - cmp r0, 0 - beq _08050C78 - ldr r0, _08050C74 - b _08050CA4 - .align 2, 0 -_08050C70: .4byte 0x03004834 -_08050C74: .4byte sub_80510E8 -_08050C78: - ldr r0, _08050C90 - movs r1, 0x1 - movs r2, 0xF - bl AddTextPrinterWithCallbackForMessage -_08050C82: - ldr r0, _08050C94 - ldr r1, [r0] -_08050C86: - adds r1, 0x6F -_08050C88: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08050CB6 - .align 2, 0 -_08050C90: .4byte gUnknown_0842D3A5 -_08050C94: .4byte 0x03004854 -_08050C98: - bl sub_8072080 - lsls r0, 24 - cmp r0, 0 - beq _08050CB6 - ldr r0, _08050CE0 -_08050CA4: - bl SetMainCallback2 - ldr r2, _08050CE4 - ldr r0, [r2] - adds r0, 0x6F - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0] -_08050CB6: - bl sub_8051B18 - ldr r0, _08050CE4 - ldr r0, [r0] - adds r0, 0x56 - ldrh r0, [r0] - bl sub_8051A3C - bl sub_805123C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08050CE0: .4byte sub_8050E30 -_08050CE4: .4byte 0x03004854 - thumb_func_end sub_8050954 - - thumb_func_start sub_8050CE8 -sub_8050CE8: @ 8050CE8 - push {r4,lr} - ldr r1, _08050D08 - ldr r0, [r1] - movs r2, 0xE2 - lsls r2, 1 - adds r0, r2 - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _08050CFE - b _08050E28 -_08050CFE: - lsls r0, 2 - ldr r1, _08050D0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08050D08: .4byte 0x03004854 -_08050D0C: .4byte _08050D10 - .align 2, 0 -_08050D10: - .4byte _08050D2C - .4byte _08050D44 - .4byte _08050D70 - .4byte _08050D80 - .4byte _08050DA6 - .4byte _08050DEC - .4byte _08050E06 -_08050D2C: - bl sub_80084A4 - ldr r0, _08050D40 - ldr r2, [r0] - movs r3, 0xE2 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0x1 - b _08050DF8 - .align 2, 0 -_08050D40: .4byte 0x03004854 -_08050D44: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _08050E28 - ldr r0, _08050D68 - ldr r1, [r0] - movs r2, 0xE2 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r1, _08050D6C - movs r0, 0x1 - strb r0, [r1] - b _08050E28 - .align 2, 0 -_08050D68: .4byte 0x03004854 -_08050D6C: .4byte 0x03001bb4 -_08050D70: - bl sub_8125E2C - ldr r0, _08050D7C - ldr r2, [r0] - b _08050DEE - .align 2, 0 -_08050D7C: .4byte 0x03004854 -_08050D80: - ldr r1, [r4] - movs r2, 0x98 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0xA - bne _08050E28 - bl sub_80084A4 - ldr r1, [r4] - movs r3, 0xE2 - lsls r3, 1 - adds r1, r3 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _08050E28 -_08050DA6: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _08050E28 - bl sub_8125E6C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08050DD0 - ldr r0, _08050DCC - ldr r0, [r0] - movs r1, 0xE2 - lsls r1, 1 - adds r0, r1 - movs r1, 0x5 - str r1, [r0] - b _08050E28 - .align 2, 0 -_08050DCC: .4byte 0x03004854 -_08050DD0: - ldr r0, _08050DE8 - ldr r1, [r0] - movs r3, 0x98 - lsls r3, 1 - adds r0, r1, r3 - str r2, [r0] - movs r0, 0xE2 - lsls r0, 1 - adds r1, r0 - movs r0, 0x3 - str r0, [r1] - b _08050E28 - .align 2, 0 -_08050DE8: .4byte 0x03004854 -_08050DEC: - ldr r2, [r4] -_08050DEE: - movs r3, 0xE2 - lsls r3, 1 - adds r1, r2, r3 - ldr r0, [r1] - adds r0, 0x1 -_08050DF8: - str r0, [r1] - movs r0, 0x98 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - str r0, [r1] - b _08050E28 -_08050E06: - ldr r1, [r4] - movs r2, 0x98 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x5 - ble _08050E28 - ldr r1, _08050E24 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _08050E2A - .align 2, 0 -_08050E24: .4byte 0x03001bb4 -_08050E28: - movs r0, 0 -_08050E2A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8050CE8 - - thumb_func_start sub_8050E30 -sub_8050E30: @ 8050E30 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _08050E50 - ldr r0, [r1] - adds r0, 0x6F - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0xC - bls _08050E44 - b _080510C4 -_08050E44: - lsls r0, 2 - ldr r1, _08050E54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08050E50: .4byte 0x03004854 -_08050E54: .4byte _08050E58 - .align 2, 0 -_08050E58: - .4byte _08050E8C - .4byte _08050ED8 - .4byte _08050F18 - .4byte _08050F6C - .4byte _08050F8C - .4byte _08050FAA - .4byte _08050FD4 - .4byte _08051004 - .4byte _08051020 - .4byte _08051030 - .4byte _08051054 - .4byte _08051094 - .4byte _080510B6 -_08050E8C: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x70 - ldrh r2, [r0] - ldr r0, _08050EB8 - cmp r2, r0 - bne _08050E9C - b _08050FA2 -_08050E9C: - ldr r0, _08050EBC - cmp r2, r0 - beq _08050EA4 - b _080510C4 -_08050EA4: - adds r0, r1, 0 - adds r0, 0x78 - ldrh r2, [r0] - ldr r0, _08050EC0 - cmp r2, r0 - bne _08050EC4 - adds r1, 0x6F - movs r0, 0x2 - strb r0, [r1] - b _080510C4 - .align 2, 0 -_08050EB8: .4byte 0x00002222 -_08050EBC: .4byte 0x00001111 -_08050EC0: .4byte 0x00009999 -_08050EC4: - ldr r0, _08050ED4 - cmp r2, r0 - bne _08050FA2 - adds r1, 0x6F - movs r0, 0x1 - strb r0, [r1] - b _080510C4 - .align 2, 0 -_08050ED4: .4byte 0x0000aaaa -_08050ED8: - ldr r0, [r5] - adds r0, 0x6F - movs r1, 0x3 - strb r1, [r0] - bl sub_814A7FC - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1C - movs r3, 0xD - bl Reset - ldr r4, _08050F0C - ldr r0, [r5] - adds r0, 0x7A - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _08050F10 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r1, _08050F14 - b _08050F4C - .align 2, 0 -_08050F0C: .4byte 0x020234cc -_08050F10: .4byte 0x03002978 -_08050F14: .4byte gUnknown_0842D461 -_08050F18: - ldr r1, [r5] - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_814A7FC - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1C - movs r3, 0xD - bl Reset - ldr r4, _08050F60 - ldr r0, [r5] - adds r0, 0x7A - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _08050F64 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r1, _08050F68 -_08050F4C: - adds r0, r4, 0 - bl StringAppend - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xF - bl AddTextPrinterWithCallbackForMessage - b _080510C4 - .align 2, 0 -_08050F60: .4byte 0x020234cc -_08050F64: .4byte 0x03002978 -_08050F68: .4byte gUnknown_0842D434 -_08050F6C: - bl sub_8072080 - lsls r0, 24 - cmp r0, 0 - bne _08050F78 - b _080510C4 -_08050F78: - ldr r0, _08050F88 - ldr r1, [r0] - movs r0, 0x98 - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0 - str r0, [r2] - b _080510AC - .align 2, 0 -_08050F88: .4byte 0x03004854 -_08050F8C: - ldr r2, [r5] - movs r0, 0x98 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bgt _08050FA0 - b _080510C4 -_08050FA0: - adds r1, r2, 0 -_08050FA2: - adds r1, 0x6F - movs r0, 0x5 - strb r0, [r1] - b _080510C4 -_08050FAA: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl DrawDefaultWindow - ldr r0, _08050FCC - movs r1, 0x2 - movs r2, 0xF - bl Print - bl sub_80084A4 - ldr r0, _08050FD0 - ldr r1, [r0] - b _080510AC - .align 2, 0 -_08050FCC: .4byte gUnknown_0842C328 -_08050FD0: .4byte 0x03004854 -_08050FD4: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080510C4 - ldr r3, _08051000 - ldr r1, [r3] - movs r2, 0x98 - lsls r2, 1 - adds r0, r1, r2 - movs r2, 0 - str r2, [r0] - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r3] - movs r1, 0xE2 - lsls r1, 1 - adds r0, r1 - str r2, [r0] - b _080510C4 - .align 2, 0 -_08051000: .4byte 0x03004854 -_08051004: - bl sub_8050CE8 - lsls r0, 24 - cmp r0, 0 - beq _080510C4 - movs r0, 0x37 - bl audio_play - ldr r0, _0805101C - ldr r1, [r0] - b _080510AC - .align 2, 0 -_0805101C: .4byte 0x03004854 -_08051020: - ldr r1, [r5] - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_80084A4 - b _080510C4 -_08051030: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080510C4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08051050 - ldr r1, [r0] - b _080510AC - .align 2, 0 -_08051050: .4byte 0x03004854 -_08051054: - ldr r0, _0805107C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080510C4 - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x70 - ldrh r1, [r0] - ldr r0, _08051080 - cmp r1, r0 - bne _08051088 - ldr r0, _08051084 - bl SetMainCallback2 - b _080510C4 - .align 2, 0 -_0805107C: .4byte 0x0202f388 -_08051080: .4byte 0x00002222 -_08051084: .4byte sub_804E538 -_08051088: - movs r1, 0x98 - lsls r1, 1 - adds r0, r2, r1 - str r3, [r0] - adds r1, r2, 0 - b _080510AC -_08051094: - ldr r1, [r5] - movs r2, 0x98 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x1E - ble _080510C4 - bl sub_800832C - ldr r1, [r5] -_080510AC: - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080510C4 -_080510B6: - ldr r0, _080510E0 - ldrb r0, [r0] - cmp r0, 0 - bne _080510C4 - ldr r0, _080510E4 - bl SetMainCallback2 -_080510C4: - bl sub_805123C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080510E0: .4byte 0x03002fa4 -_080510E4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_8050E30 - - thumb_func_start sub_80510E8 -sub_80510E8: @ 80510E8 - push {lr} - ldr r1, _08051104 - ldr r0, [r1] - adds r0, 0x6F - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0xA - bls _080510FA - b _0805121E -_080510FA: - lsls r0, 2 - ldr r1, _08051108 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051104: .4byte 0x03004854 -_08051108: .4byte _0805110C - .align 2, 0 -_0805110C: - .4byte _08051138 - .4byte _0805116E - .4byte _08051190 - .4byte _080511BC - .4byte _0805121E - .4byte _0805121E - .4byte _0805121E - .4byte _0805121E - .4byte _0805121E - .4byte _080511D8 - .4byte _080511F0 -_08051138: - ldr r1, [r3] - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0x1 - bhi _0805114A - adds r1, 0x6F - movs r0, 0x9 - strb r0, [r1] -_0805114A: - ldr r2, [r3] - adds r0, r2, 0 - adds r0, 0x7C - ldrh r1, [r0] - cmp r1, 0x2 - bne _0805115A - subs r0, 0xD - strb r1, [r0] -_0805115A: - ldr r1, [r3] - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0x3 - bne _0805121E - adds r1, 0x6F - movs r0, 0x1 - strb r0, [r1] - b _0805121E -_0805116E: - ldr r0, [r3] - adds r0, 0x6F - movs r1, 0x3 - strb r1, [r0] - bl sub_814A7FC - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1C - movs r3, 0xD - bl Reset - ldr r0, _0805118C - b _080511AC - .align 2, 0 -_0805118C: .4byte gUnknown_0842D41A -_08051190: - ldr r0, [r3] - adds r0, 0x6F - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - bl sub_814A7FC - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1C - movs r3, 0xD - bl Reset - ldr r0, _080511B8 -_080511AC: - movs r1, 0x1 - movs r2, 0xF - bl AddTextPrinterWithCallbackForMessage - b _0805121E - .align 2, 0 -_080511B8: .4byte gUnknown_0842D3DC -_080511BC: - bl sub_8072080 - lsls r0, 24 - cmp r0, 0 - beq _0805121E - ldr r0, _080511D4 - ldr r0, [r0] - adds r0, 0x6F - movs r1, 0x9 - strb r1, [r0] - b _0805121E - .align 2, 0 -_080511D4: .4byte 0x03004854 -_080511D8: - movs r0, 0x3 - bl BeginFastPaletteFade - ldr r0, _080511EC - ldr r1, [r0] - adds r1, 0x6F - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0805121E - .align 2, 0 -_080511EC: .4byte 0x03004854 -_080511F0: - ldr r0, _08051210 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0805121E - ldr r0, [r3] - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - bne _08051218 - ldr r0, _08051214 - bl SetMainCallback2 - b _0805121E - .align 2, 0 -_08051210: .4byte 0x0202f388 -_08051214: .4byte sub_804E538 -_08051218: - ldr r0, _08051238 - bl SetMainCallback2 -_0805121E: - bl sub_805123C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 -_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80510E8 - - thumb_func_start sub_805123C -sub_805123C: @ 805123C - push {r4-r6,lr} - ldr r0, _0805126C - ldrb r0, [r0] - cmp r0, 0 - bne _08051248 - b _08051404 -_08051248: - ldr r4, _08051270 - ldrh r1, [r4] - ldr r0, _08051274 - cmp r1, r0 - bne _080512C6 - ldrh r1, [r4, 0x8] - ldr r0, _08051278 - cmp r1, r0 - bne _080512B8 - ldrh r3, [r4, 0x10] - ldr r0, _0805127C - cmp r3, r0 - beq _08051298 - cmp r3, r0 - bgt _08051284 - ldr r0, _08051280 - b _08051286 - .align 2, 0 -_0805126C: .4byte 0x03002fa4 -_08051270: .4byte 0x03002a20 -_08051274: .4byte 0x00002fff -_08051278: .4byte 0x00001111 -_0805127C: .4byte 0x00009999 -_08051280: .4byte 0x00008888 -_08051284: - ldr r0, _08051290 -_08051286: - cmp r3, r0 - beq _08051298 - ldr r2, _08051294 - b _080512A8 - .align 2, 0 -_08051290: .4byte 0x0000aaaa -_08051294: .4byte 0x03004854 -_08051298: - ldr r2, _080512B0 - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0x78 - strh r3, [r1] - ldrh r1, [r4, 0x18] - adds r0, 0x7A - strh r1, [r0] -_080512A8: - ldr r0, [r2] - adds r0, 0x70 - ldr r1, _080512B4 - b _080512C4 - .align 2, 0 -_080512B0: .4byte 0x03004854 -_080512B4: .4byte 0x00001111 -_080512B8: - ldr r0, _080512F4 - cmp r1, r0 - bne _080512C6 - ldr r0, _080512F8 - ldr r0, [r0] - adds r0, 0x70 -_080512C4: - strh r1, [r0] -_080512C6: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _080512D2 - b _08051404 -_080512D2: - ldr r2, _080512F8 - ldr r0, [r2] - adds r0, 0x70 - ldrh r1, [r0] - ldr r0, _080512FC - cmp r1, r0 - bne _080512E2 - b _08051404 -_080512E2: - ldr r0, _080512F4 - cmp r1, r0 - bne _080512EA - b _08051404 -_080512EA: - movs r4, 0 - ldr r6, _08051300 - adds r5, r2, 0 - b _0805134E - .align 2, 0 -_080512F4: .4byte 0x00002222 -_080512F8: .4byte 0x03004854 -_080512FC: .4byte 0x00001111 -_08051300: .4byte 0x00002fff -_08051304: - ldr r1, _08051328 - lsls r2, r4, 1 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _08051348 - adds r0, r1, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldrh r1, [r0] - ldr r0, _0805132C - cmp r1, r0 - beq _08051340 - cmp r1, r0 - bgt _08051334 - ldr r0, _08051330 - b _0805133C - .align 2, 0 -_08051328: .4byte 0x03002a20 -_0805132C: .4byte 0x00008888 -_08051330: .4byte 0x00007779 -_08051334: - ldr r0, _08051360 - cmp r1, r0 - beq _08051340 - ldr r0, _08051364 -_0805133C: - cmp r1, r0 - bne _08051348 -_08051340: - ldr r0, [r5] - adds r0, 0x70 - adds r0, r2 - strh r1, [r0] -_08051348: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0805134E: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _08051304 - movs r4, 0 - b _0805136E - .align 2, 0 -_08051360: .4byte 0x00009999 -_08051364: .4byte 0x0000aaaa -_08051368: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0805136E: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _0805138A - ldr r0, _0805139C - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x70 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08051368 -_0805138A: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08051404 - movs r4, 0 - ldr r5, _080513A0 - b _080513AA - .align 2, 0 -_0805139C: .4byte 0x03004854 -_080513A0: .4byte 0x00007779 -_080513A4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080513AA: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _080513C6 - ldr r0, _080513E0 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x70 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - beq _080513A4 -_080513C6: - ldr r5, _080513E4 - movs r6, 0 - ldr r0, _080513E8 - strh r0, [r5] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080513F0 - ldr r0, _080513EC - strh r0, [r5, 0x2] - b _08051404 - .align 2, 0 -_080513E0: .4byte 0x03004854 -_080513E4: .4byte 0x03002f90 -_080513E8: .4byte 0x00002fff -_080513EC: .4byte 0x00002222 -_080513F0: - ldr r0, _0805140C - strh r0, [r5, 0x2] - ldr r0, _08051410 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x70 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5, 0x4] - strh r4, [r5, 0x6] -_08051404: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805140C: .4byte 0x00001111 -_08051410: .4byte 0x03004854 - thumb_func_end sub_805123C - - thumb_func_start sub_8051414 -sub_8051414: @ 8051414 - push {lr} - sub sp, 0x14 - adds r1, r0, 0 - movs r0, 0xF0 - lsls r0, 7 - str r0, [sp] - movs r0, 0xA0 - lsls r0, 7 - str r0, [sp, 0x4] - mov r3, sp - ldr r0, _08051470 - ldr r0, [r0] - mov r12, r0 - movs r0, 0xA2 - lsls r0, 1 - add r0, r12 - ldrh r2, [r0] - movs r0, 0x78 - subs r0, r2 - strh r0, [r3, 0x8] - movs r0, 0xA3 - lsls r0, 1 - add r0, r12 - ldrh r2, [r0] - movs r0, 0x50 - subs r0, r2 - strh r0, [r3, 0xA] - mov r2, sp - movs r3, 0xA1 - lsls r3, 1 - add r3, r12 - ldrh r0, [r3] - strh r0, [r2, 0xC] - ldrh r0, [r3] - strh r0, [r2, 0xE] - mov r0, r12 - adds r0, 0x54 - ldrh r0, [r0] - strh r0, [r2, 0x10] - mov r0, sp - movs r2, 0x1 - bl BgAffineSet - add sp, 0x14 - pop {r0} - bx r0 - .align 2, 0 -_08051470: .4byte 0x03004854 - thumb_func_end sub_8051414 - - thumb_func_start sub_8051474 -sub_8051474: @ 8051474 - push {lr} - ldr r0, _080514A0 - ldr r3, [r0] - adds r1, r3, 0 - adds r1, 0x54 - ldrh r2, [r1] - adds r0, r3, 0 - adds r0, 0x58 - strh r2, [r0] - subs r0, 0x2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - movs r1, 0xB4 - lsls r1, 1 - adds r0, r3, r1 - bl sub_8051414 - pop {r0} - bx r0 - .align 2, 0 -_080514A0: .4byte 0x03004854 - thumb_func_end sub_8051474 - - thumb_func_start sub_80514A4 -sub_80514A4: @ 80514A4 - ldr r1, _080514E8 - ldr r0, _080514EC - ldr r2, [r0] - movs r3, 0xB4 - lsls r3, 1 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r3, 0x2 - adds r0, r2, r3 - ldr r0, [r0] - str r0, [r1] - adds r1, 0x4 - adds r3, 0x4 - adds r0, r2, r3 - ldr r0, [r0] - str r0, [r1] - bx lr - .align 2, 0 -_080514E8: .4byte 0x04000020 -_080514EC: .4byte 0x03004854 - thumb_func_end sub_80514A4 - - thumb_func_start sub_80514F0 -sub_80514F0: @ 80514F0 - ldr r1, _0805151C - ldr r0, _08051520 - ldr r3, [r0] - movs r0, 0xA2 - lsls r0, 1 - adds r2, r3, r0 - ldrh r0, [r2] - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA3 - lsls r0, 1 - adds r3, r0 - ldrh r0, [r3] - strh r0, [r1] - subs r1, 0x6 - ldrh r0, [r2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r3] - strh r0, [r1] - bx lr - .align 2, 0 -_0805151C: .4byte 0x04000014 -_08051520: .4byte 0x03004854 - thumb_func_end sub_80514F0 - - thumb_func_start sub_8051524 -sub_8051524: @ 8051524 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r0, r1 - strh r0, [r2, 0x34] - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0 - bge _08051542 - adds r0, 0x7 -_08051542: - asrs r0, 3 - strh r0, [r2, 0x24] - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0 - bge _08051550 - adds r0, 0x7 -_08051550: - asrs r0, 3 - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08051568 - adds r0, r2, 0 - bl DestroySprite -_08051568: - pop {r0} - bx r0 - thumb_func_end sub_8051524 - - thumb_func_start sub_805156C -sub_805156C: @ 805156C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - bl Random - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0x1 - ands r1, r0 - adds r0, r1, 0x1 - cmp r0, 0 - beq _08051628 - ldr r0, _08051638 - mov r9, r0 - ldr r2, _0805163C - mov r10, r2 - adds r6, r1, 0x1 - movs r3, 0x1F - mov r8, r3 - movs r7, 0x10 -_08051598: - bl Random - ldr r1, _08051640 - ldr r4, [r1] - adds r4, 0x54 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - ldrh r1, [r4] - adds r1, r0 - lsls r1, 16 - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x40 - lsls r0, 1 - add r0, r9 - movs r3, 0 - ldrsh r1, [r0, r3] - cmp r1, 0 - bge _080515CC - adds r1, 0x3 -_080515CC: - asrs r1, 2 - lsls r0, r2, 1 - add r0, r9 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _080515DC - adds r0, 0x3 -_080515DC: - asrs r2, r0, 2 - adds r1, 0x78 - adds r2, 0x50 - ldr r0, _08051644 - movs r3, 0x1 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - mov r3, r10 - adds r4, r5, r3 - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - ands r0, r1 - subs r0, r7, r0 - strh r0, [r4, 0x2E] - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r2, r8 - ands r0, r2 - subs r0, r7, r0 - strh r0, [r4, 0x30] - ldr r3, _08051648 - adds r5, r3 - ldr r0, _0805164C - str r0, [r5] - subs r6, 0x1 - cmp r6, 0 - bne _08051598 -_08051628: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08051638: .4byte gUnknown_08208344 -_0805163C: .4byte 0x02020004 -_08051640: .4byte 0x03004854 -_08051644: .4byte gSpriteTemplate_82164FC -_08051648: .4byte 0x02020020 -_0805164C: .4byte sub_8051524 - thumb_func_end sub_805156C - - thumb_func_start sub_8051650 -sub_8051650: @ 8051650 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0805167C - adds r0, r4, 0 - bl DestroySprite -_0805167C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8051650 - - thumb_func_start sub_8051684 -sub_8051684: @ 8051684 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - lsls r0, 1 - negs r0, r0 - strh r0, [r2, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xC - negs r1, r1 - cmp r0, r1 - bge _080516A8 - ldr r0, _080516C0 - strh r0, [r2, 0x26] -_080516A8: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080516BC - adds r0, r2, 0 - bl DestroySprite -_080516BC: - pop {r0} - bx r0 - .align 2, 0 -_080516C0: .4byte 0x0000fff4 - thumb_func_end sub_8051684 - - thumb_func_start sub_80516C4 -sub_80516C4: @ 80516C4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _080516F4 - ldr r3, [r2] - lsls r4, r0, 1 - adds r2, r3, 0 - adds r2, 0x80 - adds r2, r4 - strh r1, [r2] - lsls r0, 4 - movs r2, 0xBE - lsls r2, 1 - adds r0, r2 - adds r3, r0 - adds r0, r3, 0 - bl sub_804E844 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080516F4: .4byte 0x03004854 - thumb_func_end sub_80516C4 - - thumb_func_start unref_sub_80516F8 -unref_sub_80516F8: @ 80516F8 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080517B8 - adds r4, r0, r1 - ldr r6, _080517BC - ldrb r0, [r6] - cmp r0, 0 - beq _0805180C - bl GetMultiplayerId - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080517D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - ble _08051730 - strh r1, [r4, 0x8] -_08051730: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x64 - bne _080517A0 - ldr r0, _080517C0 - ldr r0, [r0] - adds r0, 0x4 - movs r1, 0x14 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl ZeroFillWindowRect - movs r0, 0x4 - movs r1, 0x4 - movs r2, 0xA - movs r3, 0xC - bl DrawDefaultWindow - movs r2, 0 - ldr r6, _080517C4 -_0805175C: - adds r4, r2, 0x1 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - cmp r0, 0 - beq _08051784 - ldr r1, _080517C8 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - lsls r2, 25 - movs r1, 0xA0 - lsls r1, 19 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x5 - bl Print -_08051784: - movs r0, 0 - movs r1, 0xD - movs r2, 0x1D - movs r3, 0x13 - bl DrawDefaultWindow - ldr r0, _080517CC - movs r1, 0x1 - movs r2, 0xF - bl Print - adds r2, r4, 0 - cmp r2, 0x2 - ble _0805175C -_080517A0: - ldr r0, _080517D0 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805180C - bl sub_8007E4C - adds r0, r5, 0 - bl DestroyTask - b _0805180C - .align 2, 0 -_080517B8: .4byte 0x03004b20 -_080517BC: .4byte 0x03002fa4 -_080517C0: .4byte 0x03004854 -_080517C4: .4byte 0x03002974 -_080517C8: .4byte gUnknown_08216284 -_080517CC: .4byte gUnknown_0842D373 -_080517D0: .4byte 0x03001770 -_080517D4: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080517E6 - ldr r0, _08051814 - movs r1, 0x3 - movs r2, 0xA - bl Print -_080517E6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - ble _080517F8 - movs r0, 0 - strh r0, [r4, 0x8] -_080517F8: - ldr r0, _08051818 - ldrb r0, [r0] - cmp r0, 0x4 - bls _0805180C - ldrb r0, [r6] - cmp r0, 0x1 - bne _0805180C - adds r0, r5, 0 - bl DestroyTask -_0805180C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08051814: .4byte gUnknown_0842D390 -_08051818: .4byte 0x03002a68 - thumb_func_end unref_sub_80516F8 - - thumb_func_start sub_805181C -sub_805181C: @ 805181C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08051858 - cmp r0, 0x1 - bgt _08051832 - cmp r0, 0 - beq _08051838 - b _080518BE -_08051832: - cmp r0, 0x2 - beq _08051872 - b _080518BE -_08051838: - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x58 - ble _080518BE - movs r0, 0x58 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x38 - bl audio_play - b _080518BE -_08051858: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080518BE - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x32] - b _080518BE -_08051872: - ldrh r0, [r4, 0x30] - adds r0, 0x4 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB0 - ble _080518BE - ldrh r0, [r4, 0x34] - adds r0, 0x1 - adds r1, r0, 0 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080518AC - adds r0, r4, 0 - bl DestroySprite - ldr r0, _080518A8 - movs r2, 0x14 - negs r2, r2 - movs r1, 0x78 - movs r3, 0x2 - bl CreateSprite - b _080518BE - .align 2, 0 -_080518A8: .4byte gSpriteTemplate_821657C -_080518AC: - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080518C8 - strh r0, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_080518BE: - ldrh r0, [r4, 0x30] - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080518C8: .4byte 0x0000fff0 - thumb_func_end sub_805181C - - thumb_func_start sub_80518CC -sub_80518CC: @ 80518CC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08051908 - cmp r0, 0x1 - bgt _080518E2 - cmp r0, 0 - beq _080518E8 - b _0805193C -_080518E2: - cmp r0, 0x2 - beq _0805191E - b _0805193C -_080518E8: - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5C - ble _0805193C - movs r0, 0x5C - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x15 - bl audio_play - b _0805193C -_08051908: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _0805193C - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0805193C -_0805191E: - ldrh r0, [r4, 0x30] - adds r0, 0x4 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB0 - ble _0805193C - ldr r0, _08051948 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_0805193C: - ldrh r0, [r4, 0x30] - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08051948: .4byte 0x03004854 - thumb_func_end sub_80518CC - - thumb_func_start sub_805194C -sub_805194C: @ 805194C - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r3, r1, 16 - ldr r1, _08051978 - ldr r1, [r1] - movs r2, 0xA0 - lsls r2, 1 - adds r1, r2 - ldrh r2, [r1] - cmp r2, r0 - bcs _08051972 - adds r0, r2, 0x2 - strh r0, [r1] - ldrh r0, [r1] - adds r1, r3, 0 - bl sub_805197C -_08051972: - pop {r0} - bx r0 - .align 2, 0 -_08051978: .4byte 0x03004854 - thumb_func_end sub_805194C - - thumb_func_start sub_805197C -sub_805197C: @ 805197C - push {r4-r7,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r7, _08051A0C - lsrs r0, 10 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _08051994 - adds r0, r1, 0x7 -_08051994: - asrs r4, r0, 3 - movs r3, 0 - cmp r3, r4 - bge _080519BC - ldr r0, _08051A10 - adds r6, r0, 0 - adds r0, 0x10 - adds r5, r0, 0 - adds r2, r7, 0 - adds r2, 0x56 - adds r0, r7, 0 - adds r3, r4, 0 -_080519AC: - strh r6, [r0, 0x16] - strh r5, [r2] - adds r2, 0x2 - adds r0, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _080519AC - adds r3, r4, 0 -_080519BC: - adds r0, r1, 0 - cmp r1, 0 - bge _080519C4 - adds r0, r1, 0x7 -_080519C4: - asrs r2, r0, 3 - lsls r0, r2, 3 - subs r2, r1, r0 - cmp r2, 0 - beq _080519E2 - lsls r0, r3, 1 - adds r0, r7 - ldr r4, _08051A14 - adds r1, r2, r4 - strh r1, [r0, 0x16] - adds r0, 0x56 - adds r4, 0x10 - adds r1, r2, r4 - strh r1, [r0] - adds r3, 0x1 -_080519E2: - cmp r3, 0x7 - bgt _08051A06 - ldr r0, _08051A18 - adds r4, r0, 0 - adds r0, 0x10 - adds r2, r0, 0 - lsls r1, r3, 1 - adds r0, r1, 0 - adds r0, 0x56 - adds r0, r7 - adds r1, r7 -_080519F8: - strh r4, [r1, 0x16] - strh r2, [r0] - adds r0, 0x2 - adds r1, 0x2 - adds r3, 0x1 - cmp r3, 0x7 - ble _080519F8 -_08051A06: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08051A0C: .4byte 0x06006000 -_08051A10: .4byte 0x000081e9 -_08051A14: .4byte 0xffff81e1 -_08051A18: .4byte 0x000081e1 - thumb_func_end sub_805197C - - thumb_func_start sub_8051A1C -sub_8051A1C: @ 8051A1C - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08051A34 - muls r0, r1 - cmp r0, 0 - bge _08051A2E - ldr r1, _08051A38 - adds r0, r1 -_08051A2E: - asrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_08051A34: .4byte 0x00057e40 -_08051A38: .4byte 0x0000ffff - thumb_func_end sub_8051A1C - - thumb_func_start sub_8051A3C -sub_8051A3C: @ 8051A3C - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r0, 16 - bl sub_8051A1C - adds r5, r0, 0 - ldr r0, _08051ABC - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x5A - ldrh r0, [r1] - cmp r0, r5 - bcs _08051A5A - strh r5, [r1] -_08051A5A: - movs r6, 0 -_08051A5C: - mov r0, sp - adds r4, r0, r6 - adds r0, r5, 0 - movs r1, 0xA - bl __umodsi3 - strb r0, [r4] - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x4 - bls _08051A5C - ldr r2, _08051AC0 - mov r0, sp - ldr r3, _08051AC4 - adds r1, r3, 0 - ldrb r0, [r0, 0x4] - adds r0, r1, r0 - strh r0, [r2] - adds r2, 0x2 - mov r0, sp - ldrb r0, [r0, 0x3] - adds r0, r1 - strh r0, [r2] - adds r2, 0x2 - mov r0, sp - ldrb r0, [r0, 0x2] - adds r0, r1 - strh r0, [r2] - adds r2, 0x4 - mov r0, sp - ldrb r0, [r0, 0x1] - adds r0, r1 - strh r0, [r2] - adds r2, 0x2 - mov r0, sp - ldrb r0, [r0] - adds r1, r0 - strh r1, [r2] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08051ABC: .4byte 0x03004854 -_08051AC0: .4byte 0x06006458 -_08051AC4: .4byte 0x00008172 - thumb_func_end sub_8051A3C - - thumb_func_start sub_8051AC8 -sub_8051AC8: @ 8051AC8 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 16 - lsrs r5, r4, 16 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08051AEC - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __umodsi3 - lsrs r1, r4, 17 - subs r0, r1 - strh r0, [r6] -_08051AEC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8051AC8 - - thumb_func_start sub_8051AF4 -sub_8051AF4: @ 8051AF4 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bge _08051B06 - adds r0, r2, 0x1 - strh r0, [r1] -_08051B06: - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _08051B14 - subs r0, r2, 0x1 - strh r0, [r1] -_08051B14: - pop {r0} - bx r0 - thumb_func_end sub_8051AF4 - - thumb_func_start sub_8051B18 -sub_8051B18: @ 8051B18 - push {r4,lr} - ldr r4, _08051B3C - ldr r0, [r4] - movs r1, 0xA2 - lsls r1, 1 - adds r0, r1 - bl sub_8051AF4 - ldr r0, [r4] - movs r1, 0xA3 - lsls r1, 1 - adds r0, r1 - bl sub_8051AF4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08051B3C: .4byte 0x03004854 - thumb_func_end sub_8051B18 - - thumb_func_start sub_8051B40 -sub_8051B40: @ 8051B40 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r5, 0x8 - cmp r1, 0x9 - bhi _08051B50 - movs r5, 0x10 -_08051B50: - ldrh r0, [r4] - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _08051B6E - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - lsrs r1, r5, 1 - subs r0, r1 - b _08051B82 -_08051B6E: - cmp r1, 0 - bge _08051B76 - adds r0, 0x1 - strh r0, [r4] -_08051B76: - ldrh r1, [r4] - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08051B84 - subs r0, r1, 0x1 -_08051B82: - strh r0, [r4] -_08051B84: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8051B40 - - thumb_func_start sub_8051B8C -sub_8051B8C: @ 8051B8C - push {r4,r5,lr} - ldr r5, _08051BE4 - ldr r2, [r5] - movs r4, 0x98 - lsls r4, 1 - adds r0, r2, r4 - ldr r1, [r0] - cmp r1, 0 - bne _08051BAC - movs r3, 0xA2 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] -_08051BAC: - ldr r0, [r5] - adds r2, r0, r4 - ldr r1, [r2] - adds r1, 0x1 - str r1, [r2] - movs r2, 0xA2 - lsls r2, 1 - adds r0, r2 - lsls r1, 16 - lsrs r1, 16 - bl sub_8051B40 - ldr r1, [r5] - movs r3, 0xA3 - lsls r3, 1 - adds r0, r1, r3 - adds r1, r4 - ldrh r1, [r1] - bl sub_8051B40 - ldr r2, [r5] - adds r0, r2, r4 - ldr r0, [r0] - cmp r0, 0x14 - beq _08051BE8 - movs r0, 0 - b _08051BFC - .align 2, 0 -_08051BE4: .4byte 0x03004854 -_08051BE8: - movs r1, 0xA2 - lsls r1, 1 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - movs r3, 0xA3 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - movs r0, 0x1 -_08051BFC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8051B8C - - thumb_func_start sub_8051C04 -sub_8051C04: @ 8051C04 - ldr r1, _08051C20 - ldr r2, [r1] - movs r3, 0xA2 - lsls r3, 1 - adds r1, r2, r3 - ldrh r1, [r1] - negs r1, r1 - strh r1, [r0, 0x24] - adds r3, 0x2 - adds r1, r2, r3 - ldrh r1, [r1] - negs r1, r1 - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_08051C20: .4byte 0x03004854 - thumb_func_end sub_8051C04 - - thumb_func_start sub_8051C24 -sub_8051C24: @ 8051C24 - push {lr} - ldr r2, _08051C4C - ldr r0, _08051C50 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x88 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 1 - ldr r3, _08051C54 - adds r2, r3 - adds r2, r0, r2 - adds r1, 0x5A - ldrh r1, [r1] - ldrh r0, [r2] - cmp r0, r1 - bcs _08051C48 - strh r1, [r2] -_08051C48: - pop {r0} - bx r0 - .align 2, 0 -_08051C4C: .4byte 0x02025734 -_08051C50: .4byte 0x03004854 -_08051C54: .4byte 0x0000096c - thumb_func_end sub_8051C24 - - thumb_func_start sub_8051C58 -sub_8051C58: @ 8051C58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - ldr r1, _08051C7C - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x6 - bls _08051C72 - b _0805200A -_08051C72: - lsls r0, 2 - ldr r1, _08051C80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051C7C: .4byte 0x03004854 -_08051C80: .4byte _08051C84 - .align 2, 0 -_08051C84: - .4byte _08051CA0 - .4byte _08051CB6 - .4byte _08051CD0 - .4byte _08051D20 - .4byte _08051F44 - .4byte _08051F58 - .4byte _08051FF8 -_08051CA0: - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - movs r1, 0x11 - str r1, [r0] - b _0805200A -_08051CB6: - ldr r1, [r2] - movs r0, 0x98 - lsls r0, 1 - adds r2, r1, r0 - ldr r0, [r2] - subs r0, 0xA - str r0, [r2] - cmp r0, 0 - blt _08051CCA - b _0805200A -_08051CCA: - movs r0, 0 - str r0, [r2] - b _08051FE2 -_08051CD0: - ldr r1, [r2] - movs r2, 0x98 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x14 - bgt _08051CE4 - b _0805200A -_08051CE4: - movs r6, 0 -_08051CE6: - ldr r4, _08051D18 - ldr r0, [r4] - adds r0, 0x50 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08051D1C - adds r0, r1 - bl DestroySprite - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x2 - bls _08051CE6 - ldr r1, [r4] - movs r0, 0x98 - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0 - str r0, [r2] - b _08051FE2 - .align 2, 0 -_08051D18: .4byte 0x03004854 -_08051D1C: .4byte 0x02020004 -_08051D20: - movs r0, 0x4 - movs r1, 0x2 - movs r2, 0x19 - movs r3, 0x11 - bl DrawDefaultWindow - ldr r0, _08051F14 - movs r1, 0x5 - movs r2, 0x3 - movs r3, 0xA0 - bl Free - movs r6, 0 - ldr r1, _08051F18 - ldr r0, [r1] - adds r0, 0x88 - add r2, sp, 0xC - mov r9, r2 - mov r2, sp - adds r2, 0x16 - str r2, [sp, 0x30] - ldrb r0, [r0] - cmp r6, r0 - bcs _08051E04 - mov r8, r1 - ldr r0, _08051F1C - mov r10, r0 -_08051D56: - mov r1, r8 - ldr r2, [r1] - movs r1, 0xB2 - lsls r1, 1 - adds r0, r2, r1 - adds r0, r6 - ldrb r5, [r0] - mov r7, r9 - lsls r1, r5, 4 - adds r1, r2 - movs r2, 0xBF - lsls r2, 1 - adds r1, r2 - adds r0, r7, 0 - bl StringCopy - lsls r4, r5, 3 - subs r4, r5 - lsls r4, 2 - mov r1, r10 - adds r0, r4, r1 - ldrb r1, [r0, 0x1A] - adds r0, r7, 0 - bl ConvertInternationalString - adds r0, r7, 0 - ldr r1, _08051F20 - bl StringAppend - mov r2, r8 - ldr r0, [r2] - adds r7, r0, 0 - adds r7, 0xAB - adds r5, r6, 0x1 - adds r0, r7, 0 - adds r1, r5, 0 - bl ConvertIntToDecimalString - adds r7, r0, 0 - movs r1, 0 - strb r1, [r7] - movs r0, 0xAD - strb r0, [r7, 0x1] - strb r1, [r7, 0x2] - adds r7, 0x3 - ldr r0, _08051F24 - adds r4, r0 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x58 - movs r3, 0 - bl sub_8072C74 - adds r7, r0, 0 - add r1, sp, 0xC - movs r2, 0x9D - movs r3, 0 - bl sub_8072C74 - mov r2, r8 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0xAB - ldr r3, _08051F28 - adds r1, 0x88 - ldrb r2, [r1] - adds r3, r2, r3 - ldr r1, _08051F2C - adds r2, r1 - ldrb r1, [r2] - adds r2, r6, 0 - muls r2, r1 - ldrb r3, [r3] - adds r2, r3 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x5 - bl Print - lsls r5, 16 - lsrs r6, r5, 16 - mov r1, r8 - ldr r0, [r1] - adds r0, 0x88 - ldrb r0, [r0] - cmp r6, r0 - bcc _08051D56 -_08051E04: - ldr r6, _08051F18 - ldr r0, [r6] - adds r0, 0x5A - ldrh r0, [r0] - movs r1, 0x64 - bl __umodsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, r9 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r7, r0, 0 - adds r7, 0xAB - ldr r1, _08051F30 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - ldr r0, [r6] - adds r0, 0x5A - ldrh r0, [r0] - movs r1, 0x64 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r7, 0 - movs r2, 0x79 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - movs r1, 0 - strb r1, [r7] - movs r0, 0xAD - strb r0, [r7, 0x1] - strb r1, [r7, 0x2] - adds r7, 0x3 - adds r0, r7, 0 - mov r1, r9 - movs r2, 0x8E - movs r3, 0x1 - bl sub_8072C74 - adds r7, r0, 0 - ldr r1, _08051F34 - bl StringCopy - ldr r0, [r6] - adds r0, 0xAB - movs r1, 0x5 - movs r2, 0xD - bl Print - ldr r0, [r6] - movs r2, 0x96 - lsls r2, 1 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x3C - bl __udivsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x3C - bl __umodsi3 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, r9 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [sp, 0x30] - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r7, r0, 0 - adds r7, 0xAB - ldr r1, _08051F38 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - mov r1, r9 - movs r2, 0x66 - movs r3, 0x1 - bl sub_8072C74 - adds r7, r0, 0 - ldr r1, _08051F3C - bl StringAppend - adds r7, r0, 0 - ldr r1, [sp, 0x30] - movs r2, 0x88 - movs r3, 0x1 - bl sub_8072C74 - adds r7, r0, 0 - ldr r1, _08051F40 - bl StringCopy - ldr r0, [r6] - adds r0, 0xAB - movs r1, 0x5 - movs r2, 0xF - bl Print - ldr r1, [r6] - movs r0, 0x98 - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0 - str r0, [r2] - b _08051FE2 - .align 2, 0 -_08051F14: .4byte gUnknown_0842D479 -_08051F18: .4byte 0x03004854 -_08051F1C: .4byte 0x03002970 -_08051F20: .4byte gUnknown_0842D498 -_08051F24: .4byte 0x03002978 -_08051F28: .4byte gUnknown_082165E9 -_08051F2C: .4byte gUnknown_082165EE -_08051F30: .4byte gUnknown_0842D4B7 -_08051F34: .4byte gUnknown_0842D4C5 -_08051F38: .4byte gUnknown_0842D49F -_08051F3C: .4byte gUnknown_0842D4AD -_08051F40: .4byte gUnknown_0842D4B2 -_08051F44: - ldr r0, _08051F54 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805200A - ldr r1, [r2] - b _08051FE2 - .align 2, 0 -_08051F54: .4byte 0x03001770 -_08051F58: - bl sub_8071EF4 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl DrawDefaultWindow - movs r6, 0 - add r5, sp, 0x28 - ldr r0, _08051FEC - ldr r0, [r0] - adds r3, r0, 0 - adds r3, 0x80 - add r2, sp, 0x20 -_08051F76: - lsls r1, r6, 1 - adds r0, r3, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _08051F86 - adds r1, r2, r1 - subs r0, 0x85 - strh r0, [r1] -_08051F86: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08051F76 - bl sub_8050760 - ldr r4, _08051FEC - ldr r3, [r4] - movs r1, 0xBE - lsls r1, 1 - adds r0, r3, r1 - adds r1, r3, 0 - adds r1, 0x88 - ldrb r2, [r1] - subs r1, 0x2E - ldrh r1, [r1] - str r1, [sp] - adds r1, r5, 0 - add r3, sp, 0x4 - bl sub_8050520 - ldr r1, [r4] - adds r1, 0xAB - adds r0, r5, 0 - bl sub_805201C - ldr r0, _08051FF0 - movs r1, 0x6 - bl CreateTask - ldr r0, [r4] - adds r0, 0xAB - movs r1, 0x1 - movs r2, 0xF - bl AddTextPrinterWithCallbackForMessage - ldr r0, _08051FF4 - ldrh r0, [r0] - movs r1, 0x1 - bl sub_80A9538 - adds r0, r5, 0 - bl sub_810CA34 - ldr r1, [r4] -_08051FE2: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0805200A - .align 2, 0 -_08051FEC: .4byte 0x03004854 -_08051FF0: .4byte sub_8052BD0 -_08051FF4: .4byte 0x0203855e -_08051FF8: - bl sub_8072080 - lsls r0, 24 - cmp r0, 0 - beq _0805200A - bl sub_8051C24 - movs r0, 0x1 - b _0805200C -_0805200A: - movs r0, 0 -_0805200C: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8051C58 - - thumb_func_start sub_805201C -sub_805201C: @ 805201C - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0xFF - strb r0, [r6] - ldr r1, _080520B0 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl StringCopy - ldr r1, _080520B4 - adds r0, r6, 0 - bl StringAppend - ldr r1, _080520B8 - adds r0, r6, 0 - bl StringAppend - adds r0, r5, 0 - bl sub_810C9B0 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_810C9E8 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080520BC - adds r0, r6, 0 - bl StringAppend - mov r0, sp - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - mov r1, sp - bl StringAppend - ldr r1, _080520C0 - adds r0, r6, 0 - bl StringAppend - mov r0, sp - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - mov r1, sp - bl StringAppend - ldr r1, _080520C4 - adds r0, r6, 0 - bl StringAppend - ldr r1, _080520C8 - adds r0, r6, 0 - bl StringAppend - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080520B0: .4byte gUnknown_083F7EB8 -_080520B4: .4byte gUnknown_0842D368 -_080520B8: .4byte gUnknown_082162C8 -_080520BC: .4byte gUnknown_0842D4D3 -_080520C0: .4byte gUnknown_0842D4E1 -_080520C4: .4byte gUnknown_0842D4F4 -_080520C8: .4byte gUnknown_08216249 - thumb_func_end sub_805201C - - thumb_func_start sub_80520CC -sub_80520CC: @ 80520CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - mov r12, r2 - lsls r1, 24 - lsrs r7, r1, 24 - movs r0, 0 - cmp r0, r7 - bge _08052118 -_080520E2: - movs r5, 0 - adds r1, r0, 0x1 - mov r8, r1 - cmp r5, r7 - bge _08052112 - mov r1, r9 - adds r6, r1, r0 -_080520F0: - ldrb r4, [r6] - lsls r1, r4, 2 - add r1, r12 - mov r0, r9 - adds r2, r0, r5 - ldrb r3, [r2] - lsls r0, r3, 2 - add r0, r12 - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - bls _0805210C - strb r3, [r6] - strb r4, [r2] -_0805210C: - adds r5, 0x1 - cmp r5, r7 - blt _080520F0 -_08052112: - mov r0, r8 - cmp r0, r7 - blt _080520E2 -_08052118: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80520CC - - thumb_func_start sub_8052124 -sub_8052124: @ 8052124 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - movs r5, 0 - ldr r1, _08052144 - ldr r0, [r1] - adds r0, 0x88 - mov r10, r1 - mov r2, sp - adds r2, 0x4 - str r2, [sp, 0x14] - b _08052158 - .align 2, 0 -_08052144: .4byte 0x03004854 -_08052148: - mov r4, sp - adds r0, r4, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r1] - adds r0, 0x88 -_08052158: - ldrb r0, [r0] - cmp r5, r0 - bcc _08052148 - movs r5, 0 - mov r1, r10 - ldr r0, [r1] - adds r1, r0, 0 - adds r1, 0x88 - ldrb r2, [r1] - cmp r5, r2 - bcs _080521D6 - ldr r4, [sp, 0x14] - mov r9, r4 - movs r2, 0xA6 - lsls r2, 1 - adds r2, r0 - mov r8, r2 - mov r12, r1 - movs r4, 0xA7 - lsls r4, 1 - adds r7, r0, r4 - movs r1, 0xA8 - lsls r1, 1 - adds r6, r0, r1 -_08052188: - lsls r4, r5, 2 - add r4, r9 - lsls r3, r5, 1 - adds r3, r5 - lsls r3, 1 - mov r2, r8 - adds r0, r2, r3 - ldrh r2, [r0] - lsls r0, r2, 5 - subs r0, r2 - lsls r1, r0, 6 - subs r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r1, 6 - str r1, [r4] - adds r0, r7, r3 - ldrh r2, [r0] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - str r1, [r4] - movs r0, 0xFA - lsls r0, 2 - adds r1, r0 - adds r3, r6, r3 - ldrh r0, [r3] - subs r1, r0 - str r1, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r12 - ldrb r1, [r1] - cmp r5, r1 - bcc _08052188 -_080521D6: - mov r2, r10 - ldr r0, [r2] - adds r0, 0x88 - ldrb r1, [r0] - mov r0, sp - ldr r2, [sp, 0x14] - bl sub_80520CC - movs r5, 0 - mov r4, r10 - ldr r0, [r4] - adds r0, 0x88 - ldrb r0, [r0] - cmp r5, r0 - bcs _08052218 - mov r2, r10 - movs r3, 0xB2 - lsls r3, 1 -_080521FA: - ldr r1, [r2] - adds r1, r3 - adds r1, r5 - mov r4, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r2] - adds r0, 0x88 - ldrb r0, [r0] - cmp r5, r0 - bcc _080521FA -_08052218: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8052124 - - thumb_func_start sub_8052228 -sub_8052228: @ 8052228 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _08052248 - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x6 - bls _0805223C - b _080524AE -_0805223C: - lsls r0, 2 - ldr r1, _0805224C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08052248: .4byte 0x03004854 -_0805224C: .4byte _08052250 - .align 2, 0 -_08052250: - .4byte _0805226C - .4byte _08052282 - .4byte _0805229C - .4byte _080522B6 - .4byte _08052464 - .4byte _0805247E - .4byte _080524A4 -_0805226C: - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - movs r1, 0x98 - lsls r1, 1 - adds r0, r1 - movs r1, 0xFF - str r1, [r0] - b _080524AE -_08052282: - ldr r1, [r2] - movs r0, 0x98 - lsls r0, 1 - adds r2, r1, r0 - ldr r0, [r2] - subs r0, 0xA - str r0, [r2] - cmp r0, 0 - blt _08052296 - b _080524AE -_08052296: - movs r0, 0 - str r0, [r2] - b _08052494 -_0805229C: - ldr r1, [r2] - movs r0, 0x98 - lsls r0, 1 - adds r2, r1, r0 - ldr r0, [r2] - adds r0, 0x1 - str r0, [r2] - cmp r0, 0x14 - bgt _080522B0 - b _080524AE -_080522B0: - movs r0, 0 - str r0, [r2] - b _08052494 -_080522B6: - movs r0, 0x4 - movs r1, 0x2 - movs r2, 0x19 - movs r3, 0x11 - bl DrawDefaultWindow - ldr r0, _0805236C - movs r1, 0x5 - movs r2, 0x3 - movs r3, 0xA0 - bl Free - ldr r6, _08052370 - adds r0, r6, 0 - movs r1, 0x8C - movs r2, 0x34 - movs r3, 0 - bl CreateSprite - ldr r7, _08052374 - ldr r1, [r7] - adds r1, 0x50 - strb r0, [r1] - ldr r1, _08052378 - mov r8, r1 - ldr r2, [r7] - adds r2, 0x50 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r5, r8 - adds r5, 0x1C - adds r0, r5 - ldr r4, _0805237C - str r4, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x3 - bl StartSpriteAnim - adds r0, r6, 0 - movs r1, 0xA4 - movs r2, 0x34 - movs r3, 0 - bl CreateSprite - ldr r1, [r7] - adds r1, 0x51 - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x51 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - str r4, [r0] - adds r0, r6, 0 - movs r1, 0xBC - movs r2, 0x34 - movs r3, 0 - bl CreateSprite - ldr r1, [r7] - adds r1, 0x52 - strb r0, [r1] - ldr r2, [r7] - adds r2, 0x52 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - str r4, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x1 - bl StartSpriteAnim - bl sub_8052124 - movs r2, 0 - mov r8, r2 - b _0805243C - .align 2, 0 -_0805236C: .4byte gUnknown_0842D4CB -_08052370: .4byte gSpriteTemplate_821645C -_08052374: .4byte 0x03004854 -_08052378: .4byte 0x02020004 -_0805237C: .4byte SpriteCallbackDummy -_08052380: - ldr r1, [r7] - movs r2, 0xB2 - lsls r2, 1 - adds r0, r1, r2 - add r0, r8 - ldrb r5, [r0] - adds r2, r1, 0 - adds r2, 0xAB - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - movs r0, 0x4 - strb r0, [r2, 0x2] - adds r2, 0x3 - mov r6, r8 - adds r6, 0x1 - adds r0, r2, 0 - adds r1, r6, 0 - bl ConvertIntToDecimalString - adds r2, r0, 0 - movs r1, 0 - strb r1, [r2] - movs r0, 0xAD - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - adds r2, 0x3 - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - ldr r0, _08052458 - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, [r7] - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 1 - movs r1, 0xA6 - lsls r1, 1 - adds r0, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x6C - movs r3, 0x1 - bl sub_8072C14 - adds r2, r0, 0 - ldr r0, [r7] - movs r1, 0xA7 - lsls r1, 1 - adds r0, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x84 - movs r3, 0x1 - bl sub_8072C14 - adds r2, r0, 0 - ldr r0, [r7] - movs r1, 0xA8 - lsls r1, 1 - adds r0, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x9C - movs r3, 0x1 - bl sub_8072C14 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0xAB - ldr r2, _0805245C - adds r1, 0x88 - ldrb r1, [r1] - adds r1, r2 - ldrb r1, [r1] - mov r2, r8 - muls r2, r1 - adds r2, 0x8 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x5 - bl Print - lsls r6, 16 - lsrs r6, 16 - mov r8, r6 -_0805243C: - ldr r0, [r7] - adds r0, 0x88 - ldrb r0, [r0] - cmp r8, r0 - bcc _08052380 - ldr r0, _08052460 - ldr r1, [r0] - movs r0, 0x98 - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0 - str r0, [r2] - b _08052494 - .align 2, 0 -_08052458: .4byte 0x03002978 -_0805245C: .4byte gUnknown_082165F3 -_08052460: .4byte 0x03004854 -_08052464: - ldr r2, [r2] - movs r0, 0x98 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x14 - ble _080524AE - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _080524AE -_0805247E: - ldr r0, _0805249C - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080524AE - movs r0, 0x5 - bl audio_play - ldr r0, _080524A0 - ldr r1, [r0] -_08052494: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080524AE - .align 2, 0 -_0805249C: .4byte 0x03001770 -_080524A0: .4byte 0x03004854 -_080524A4: - ldr r1, [r2] - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _080524B0 -_080524AE: - movs r0, 0 -_080524B0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8052228 - - thumb_func_start unref_sub_80524BC -unref_sub_80524BC: @ 80524BC - push {r4,lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _0805251C - bl SetVBlankCallback - ldr r4, _08052520 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl sub_8071C4C - ldr r0, _08052524 - ldrh r0, [r0, 0x20] - bl SeedRng - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xAA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r1, _08052528 - movs r0, 0xFA - lsls r0, 5 - strh r0, [r1, 0x1A] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - ldr r0, _0805252C - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805251C: .4byte sub_804E2D8 -_08052520: .4byte gWindowConfig_81E6CE4 -_08052524: .4byte 0x03001770 -_08052528: .4byte 0x03000560 -_0805252C: .4byte sub_8052AF8 - thumb_func_end unref_sub_80524BC - - thumb_func_start sub_8052530 -sub_8052530: @ 8052530 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x98 - ldr r1, _080525C8 - mov r0, sp - bl StringCopy - mov r0, sp - movs r1, 0x2 - movs r2, 0 - bl Print - ldr r4, _080525CC - movs r1, 0x1A - ldrsh r0, [r4, r1] - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x6 - movs r2, 0 - bl Print - movs r6, 0 - mov r2, sp - adds r2, 0x3 - str r2, [sp, 0x84] - mov r3, sp - adds r3, 0x6 - str r3, [sp, 0x88] - mov r0, sp - adds r0, 0x9 - str r0, [sp, 0x8C] - mov r1, sp - adds r1, 0xC - str r1, [sp, 0x90] - adds r2, 0xC - str r2, [sp, 0x94] - mov r8, r4 - mov r7, sp - ldr r3, _080525D0 - mov r9, r3 - ldr r0, _080525D4 - mov r10, r0 -_0805259E: - mov r1, r8 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, r6 - bne _080525D8 - movs r0, 0xEF - strb r0, [r7] - mov r0, r8 - adds r0, 0x1 - adds r0, r6, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - mov r1, sp - adds r1, 0x1 - bl itemid_copy_name - b _080525F8 - .align 2, 0 -_080525C8: .4byte gUnknown_082165FA -_080525CC: .4byte 0x03000560 -_080525D0: .4byte gBerries -_080525D4: .4byte gUnknown_082165F8 -_080525D8: - mov r0, r8 - adds r0, 0x1 - adds r0, r6, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - mov r1, sp - bl itemid_copy_name - movs r0, 0 - strb r0, [r7, 0x6] - movs r0, 0xFF - strb r0, [r7, 0x7] -_080525F8: - lsls r5, r6, 1 - adds r5, r6 - adds r5, 0x3 - lsls r5, 24 - lsrs r5, 24 - mov r0, sp - movs r1, 0x2 - adds r2, r5, 0 - bl Print - mov r4, r8 - adds r4, 0x1 - adds r4, r6, r4 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r1, [r0, 0x15] - mov r0, sp - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, sp - mov r1, r10 - bl StringAppend - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r1, [r0, 0x16] - ldr r0, [sp, 0x84] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, sp - mov r1, r10 - bl StringAppend - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r1, [r0, 0x17] - ldr r0, [sp, 0x88] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, sp - mov r1, r10 - bl StringAppend - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r1, [r0, 0x18] - ldr r0, [sp, 0x8C] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, sp - mov r1, r10 - bl StringAppend - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r1, [r0, 0x19] - ldr r0, [sp, 0x90] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, sp - mov r1, r10 - bl StringAppend - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r1, [r0, 0x1A] - ldr r0, [sp, 0x94] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r2, 0x1 - negs r2, r2 - add r3, sp, 0x80 - strb r2, [r3] - movs r0, 0xFF - strb r0, [r7, 0x11] - mov r0, sp - movs r1, 0x7 - adds r2, r5, 0 - bl Print - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bhi _080526EC - b _0805259E -_080526EC: - mov r1, r8 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _080527A4 - ldr r1, _080527B4 - mov r2, r8 - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - mov r0, sp - bl StringCopy - mov r0, sp - movs r1, 0x2 - movs r2, 0xF - bl Print - mov r3, r8 - ldrb r1, [r3, 0x11] - mov r0, sp - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - ldr r4, _080527B8 - mov r0, sp - adds r1, r4, 0 - bl StringAppend - mov r0, r8 - ldrb r1, [r0, 0x12] - ldr r0, [sp, 0x84] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - mov r0, sp - adds r1, r4, 0 - bl StringAppend - mov r2, r8 - ldrb r1, [r2, 0x13] - ldr r0, [sp, 0x88] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - mov r0, sp - adds r1, r4, 0 - bl StringAppend - mov r3, r8 - ldrb r1, [r3, 0x14] - ldr r0, [sp, 0x8C] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - mov r0, sp - adds r1, r4, 0 - bl StringAppend - mov r0, r8 - ldrb r1, [r0, 0x15] - ldr r0, [sp, 0x90] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - mov r0, sp - adds r1, r4, 0 - bl StringAppend - mov r2, r8 - ldrb r1, [r2, 0x16] - ldr r0, [sp, 0x94] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - mov r1, sp - ldrb r0, [r1, 0x11] - add r3, sp, 0x80 - ldrb r3, [r3] - orrs r0, r3 - strb r0, [r1, 0x11] - mov r0, sp - movs r1, 0x7 - movs r2, 0x11 - bl Print -_080527A4: - add sp, 0x98 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080527B4: .4byte gUnknown_083F7EB8 -_080527B8: .4byte gUnknown_082165F8 - thumb_func_end sub_8052530 - - thumb_func_start sub_80527BC -sub_80527BC: @ 80527BC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x58 - ldr r0, _08052844 - ldrb r0, [r0] - add r6, sp, 0x48 - cmp r0, 0x1 - bne _08052814 - movs r1, 0 - ldr r3, _08052848 - movs r2, 0 -_080527D6: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x9 - bls _080527D6 - bl Random - ldr r1, _0805284C - strh r0, [r1] - ldr r1, _08052850 - movs r0, 0 - str r0, [r1] - ldr r1, _08052844 - movs r0, 0x2 - strb r0, [r1] - movs r4, 0 - ldr r2, _08052854 - movs r1, 0 -_08052800: - adds r0, r4, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xC7 - bls _08052800 - ldr r1, _08052858 - movs r0, 0 - strb r0, [r1] -_08052814: - movs r4, 0 - movs r0, 0x1 - mov r8, r0 - ldr r7, _08052858 - ldr r5, _08052850 - ldr r1, _08052854 - mov r9, r1 - ldr r3, _0805285C -_08052824: - str r3, [sp, 0x54] - bl Random - lsls r0, 16 - lsrs r0, 31 - mov r1, r8 - ands r0, r1 - ldr r3, [sp, 0x54] - ldrb r1, [r7] - cmp r0, r1 - bne _08052860 - ldr r0, [r5] - adds r0, 0x1 - str r0, [r5] - b _0805287A - .align 2, 0 -_08052844: .4byte 0x020297dc -_08052848: .4byte 0x03004840 -_0805284C: .4byte 0x03004830 -_08052850: .4byte 0x020297e0 -_08052854: .4byte 0x02000000 -_08052858: .4byte 0x020297e8 -_0805285C: .4byte 0x020297e4 -_08052860: - ldr r2, [r3] - lsls r0, r2, 1 - add r0, r9 - ldr r1, [r5] - strh r1, [r0] - adds r2, 0x1 - str r2, [r3] - movs r0, 0 - str r0, [r5] - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - strb r0, [r7] -_0805287A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x63 - bls _08052824 - mov r1, sp - movs r0, 0xFF - strb r0, [r1] - ldr r0, _08052900 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0x2 - movs r3, 0x8 - bl ConvertIntToHexStringN - mov r0, sp - adds r1, r6, 0 - bl StringAppend - ldr r1, _08052904 - mov r0, sp - bl StringAppend - ldr r0, _08052908 - ldr r1, [r0] - adds r0, r6, 0 - movs r2, 0x2 - movs r3, 0x8 - bl ConvertIntToHexStringN - mov r0, sp - adds r1, r6, 0 - bl StringAppend - ldr r1, _0805290C - mov r0, sp - bl StringAppend - ldr r4, _08052910 - ldrb r0, [r4] - cmp r0, 0x3 - bne _080528E8 - ldr r0, _08052914 - ldr r1, [r0] - adds r0, r6, 0 - movs r2, 0x2 - movs r3, 0x10 - bl ConvertIntToHexStringN - mov r0, sp - adds r1, r6, 0 - bl StringAppend - movs r0, 0 - strb r0, [r4] -_080528E8: - mov r0, sp - movs r1, 0x2 - movs r2, 0xF - bl Print - add sp, 0x58 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08052900: .4byte 0x03004830 -_08052904: .4byte gUnknown_082165F8 -_08052908: .4byte 0x020297e0 -_0805290C: .4byte gUnknown_08216600 -_08052910: .4byte 0x020297dc -_08052914: .4byte 0x020297e4 - thumb_func_end sub_80527BC - - thumb_func_start sub_8052918 -sub_8052918: @ 8052918 - push {r4-r6,lr} - sub sp, 0x4C - ldr r2, _08052A88 - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - ldr r4, _08052A8C - cmp r0, 0 - beq _0805294C - movs r1, 0xFA - lsls r1, 2 - adds r0, r1, 0 - ldrh r1, [r4, 0x1A] - adds r0, r1 - strh r0, [r4, 0x1A] - lsls r0, 16 - ldr r1, _08052A90 - cmp r0, r1 - ble _08052946 - movs r0, 0xFA - lsls r0, 2 - strh r0, [r4, 0x1A] -_08052946: - ldrb r0, [r4, 0x10] - adds r0, 0x1 - strb r0, [r4, 0x10] -_0805294C: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _08052972 - ldr r1, _08052A94 - adds r0, r1, 0 - ldrh r1, [r4, 0x1A] - adds r0, r1 - strh r0, [r4, 0x1A] - lsls r0, 16 - cmp r0, 0 - bge _0805296C - ldr r0, _08052A98 - strh r0, [r4, 0x1A] -_0805296C: - ldrb r0, [r4, 0x10] - adds r0, 0x1 - strb r0, [r4, 0x10] -_08052972: - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08052992 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - bge _0805298C - movs r0, 0x3 - strb r0, [r4] -_0805298C: - ldrb r0, [r4, 0x10] - adds r0, 0x1 - strb r0, [r4, 0x10] -_08052992: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080529B4 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080529AE - movs r0, 0 - strb r0, [r4] -_080529AE: - ldrb r0, [r4, 0x10] - adds r0, 0x1 - strb r0, [r4, 0x10] -_080529B4: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080529E4 - adds r3, r4, 0 - movs r1, 0 - ldrsb r1, [r3, r1] - adds r5, r3, 0x1 - adds r1, r5 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080529DE - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, r5 - movs r1, 0x2A - strb r1, [r0] -_080529DE: - ldrb r0, [r4, 0x10] - adds r0, 0x1 - strb r0, [r4, 0x10] -_080529E4: - ldrh r1, [r2, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08052A16 - ldr r3, _08052A8C - movs r1, 0 - ldrsb r1, [r3, r1] - adds r4, r3, 0x1 - adds r1, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2A - ble _08052A10 - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, r4 - movs r1, 0 - strb r1, [r0] -_08052A10: - ldrb r0, [r3, 0x10] - adds r0, 0x1 - strb r0, [r3, 0x10] -_08052A16: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08052AA0 - movs r6, 0 - movs r4, 0 - ldr r5, _08052A8C -_08052A26: - adds r0, r5, 0x1 - adds r2, r4, r0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x2A - beq _08052A64 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r4, 1 - mov r1, sp - adds r1, r0 - adds r1, 0x4 - movs r0, 0 - ldrsb r0, [r2, r0] - strh r0, [r1] - add r0, sp, 0xC - lsls r1, r4, 4 - adds r0, r1 - movs r1, 0 - ldrsb r1, [r2, r1] - adds r1, 0x85 - lsls r1, 16 - lsrs r1, 16 - bl sub_804E844 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08052A26 -_08052A64: - cmp r6, 0x1 - bls _08052A9C - add r0, sp, 0xC - adds r1, r5, 0 - adds r1, 0x8 - lsls r2, r6, 24 - lsrs r2, 24 - adds r3, r5, 0 - adds r3, 0x11 - ldrh r4, [r5, 0x1A] - str r4, [sp] - bl sub_8050744 - ldrb r0, [r5, 0x10] - adds r0, 0x1 - strb r0, [r5, 0x10] - b _08052AA0 - .align 2, 0 -_08052A88: .4byte 0x03001770 -_08052A8C: .4byte 0x03000560 -_08052A90: .4byte 0x75300000 -_08052A94: .4byte 0xfffffc18 -_08052A98: .4byte 0x00007530 -_08052A9C: - movs r0, 0xFF - strb r0, [r5, 0x8] -_08052AA0: - ldr r4, _08052AE8 - ldrb r0, [r4, 0x10] - cmp r0, 0 - beq _08052AB0 - bl sub_8052530 - movs r0, 0 - strb r0, [r4, 0x10] -_08052AB0: - ldr r3, _08052AEC - ldrh r1, [r3, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08052AD4 - ldr r2, _08052AF0 - ldrb r0, [r2] - adds r1, r0, 0 - cmp r1, 0 - bne _08052ADC - adds r0, 0x1 - strb r0, [r2] - ldr r0, _08052AF4 - str r1, [r0] - ldrh r0, [r3, 0x20] - bl SeedRng -_08052AD4: - ldr r0, _08052AF0 - ldrb r0, [r0] - cmp r0, 0 - beq _08052AE0 -_08052ADC: - bl sub_80527BC -_08052AE0: - add sp, 0x4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08052AE8: .4byte 0x03000560 -_08052AEC: .4byte 0x03001770 -_08052AF0: .4byte 0x020297dc -_08052AF4: .4byte 0x020297e0 - thumb_func_end sub_8052918 - - thumb_func_start sub_8052AF8 -sub_8052AF8: @ 8052AF8 - push {lr} - bl sub_8052918 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8052AF8 - - thumb_func_start ShowBerryBlenderRecordWindow -ShowBerryBlenderRecordWindow: @ 8052B14 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x20 - movs r0, 0x6 - movs r1, 0x3 - movs r2, 0x17 - movs r3, 0x10 - bl DrawDefaultWindow - ldr r0, _08052BBC - movs r1, 0x8 - movs r2, 0x4 - bl Print - ldr r0, _08052BC0 - movs r1, 0x8 - movs r2, 0x9 - bl Print - movs r0, 0 - mov r8, r0 - ldr r0, _08052BC4 - movs r7, 0x90 - lsls r7, 20 - ldr r1, _08052BC8 - adds r6, r0, r1 - movs r0, 0 - mov r9, r0 -_08052B50: - ldrh r4, [r6] - adds r0, r4, 0 - movs r1, 0x64 - bl __udivsi3 - adds r1, r0, 0 - mov r0, sp - movs r2, 0x12 - movs r3, 0x1 - bl sub_8072C14 - adds r5, r0, 0 - mov r1, r9 - strb r1, [r5] - movs r0, 0xAD - strb r0, [r5, 0x1] - strb r1, [r5, 0x2] - adds r5, 0x3 - adds r0, r4, 0 - movs r1, 0x64 - bl __umodsi3 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - ldr r1, _08052BCC - bl StringAppend - lsrs r2, r7, 24 - mov r0, sp - movs r1, 0xF - bl Print - movs r0, 0x80 - lsls r0, 18 - adds r7, r0 - adds r6, 0x2 - movs r1, 0x1 - add r8, r1 - mov r0, r8 - cmp r0, 0x2 - ble _08052B50 - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08052BBC: .4byte gUnknown_0842C2E6 -_08052BC0: .4byte gUnknown_0842C30A -_08052BC4: .4byte 0x02025734 -_08052BC8: .4byte 0x0000096c -_08052BCC: .4byte gUnknown_0842D4C5 - thumb_func_end ShowBerryBlenderRecordWindow - - thumb_func_start sub_8052BD0 -sub_8052BD0: @ 8052BD0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _08052C1C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08052BF6 - ldr r0, _08052C20 - bl fanfare_play - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08052BF6: - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - beq _08052C16 - ldr r0, _08052C24 - ldr r0, [r0] - movs r1, 0xBC - lsls r1, 1 - adds r0, r1 - ldrh r0, [r0] - bl sub_8075474 - adds r0, r5, 0 - bl DestroyTask -_08052C16: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08052C1C: .4byte 0x03004b20 -_08052C20: .4byte 0x0000016f -_08052C24: .4byte 0x03004854 - thumb_func_end sub_8052BD0 diff --git a/asm/rom5.s b/asm/rom5.s index cec4f51e6..7c62b5254 100644 --- a/asm/rom5.s +++ b/asm/rom5.s @@ -99345,7 +99345,7 @@ _080AB6F2: _080AB6F8: .4byte 0x03004b20 _080AB6FC: .4byte 0x02019204 _080AB700: .4byte sub_80AB960 -_080AB704: .4byte 0x03004818 +_080AB704: .4byte gRngValue _080AB708: .4byte 0x03005d28 thumb_func_end sub_80AB6B4 @@ -100742,7 +100742,7 @@ _080AC2B6: .align 2, 0 _080AC2BC: .4byte 0x03004b20 _080AC2C0: .4byte 0x02019204 -_080AC2C4: .4byte 0x03004818 +_080AC2C4: .4byte gRngValue _080AC2C8: .4byte sub_80AC2CC thumb_func_end sub_80AC284 @@ -104063,7 +104063,7 @@ _080ADE2C: .4byte 0x02019260 _080ADE30: .4byte 0x02038680 _080ADE34: .4byte 0x02038695 _080ADE38: .4byte 0x03005d28 -_080ADE3C: .4byte 0x03004818 +_080ADE3C: .4byte gRngValue _080ADE40: .4byte 0x020234cc _080ADE44: .4byte gUnknown_083CB02C _080ADE48: .4byte 0x0202e908 @@ -159120,7 +159120,7 @@ _080C88D8: bl sub_80C857C b _080C891E .align 2, 0 -_080C88F8: .4byte 0x03004818 +_080C88F8: .4byte gRngValue _080C88FC: movs r0, 0 bl sub_80C85AC @@ -159145,7 +159145,7 @@ _080C8924: pop {r0} bx r0 .align 2, 0 -_080C892C: .4byte 0x03004818 +_080C892C: .4byte gRngValue _080C8930: .4byte 0x03002b80 _080C8934: .4byte 0x03005d28 thumb_func_end sub_80C88AC diff --git a/asm/rom_8040EB4.s b/asm/rom_8040EB4.s new file mode 100644 index 000000000..67ee5c939 --- /dev/null +++ b/asm/rom_8040EB4.s @@ -0,0 +1,35453 @@ + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start object_new_hidden_with_callback +object_new_hidden_with_callback: @ 8040EB4 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _08040EE8 + movs r1, 0xF8 + movs r2, 0xA8 + movs r3, 0xE + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08040EEC + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r3, r2, r5 + adds r3, 0x3E + ldrb r1, [r3] + movs r4, 0x4 + orrs r1, r4 + strb r1, [r3] + adds r5, 0x1C + adds r2, r5 + str r6, [r2] + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08040EE8: .4byte gSpriteTemplate_82087AC +_08040EEC: .4byte 0x02020004 + thumb_func_end object_new_hidden_with_callback + + thumb_func_start StoreWordInTwoHalfwords +StoreWordInTwoHalfwords: @ 8040EF0 + strh r1, [r0] + lsrs r1, 16 + strh r1, [r0, 0x2] + bx lr + thumb_func_end StoreWordInTwoHalfwords + + thumb_func_start LoadWordFromTwoHalfwords +LoadWordFromTwoHalfwords: @ 8040EF8 + ldrh r2, [r0] + movs r3, 0x2 + ldrsh r0, [r0, r3] + lsls r0, 16 + orrs r2, r0 + str r2, [r1] + bx lr + thumb_func_end LoadWordFromTwoHalfwords + + thumb_func_start sub_8040F08 +sub_8040F08: @ 8040F08 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, [sp, 0x18] + ldr r5, [sp, 0x1C] + ldr r6, [sp, 0x20] + ldr r7, [sp, 0x24] + mov r8, r7 + str r1, [r0] + str r2, [r0, 0x4] + strh r3, [r0, 0x8] + strh r4, [r0, 0xA] + strh r5, [r0, 0xC] + strh r6, [r0, 0xE] + mov r1, r8 + strh r1, [r0, 0x10] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8040F08 + + thumb_func_start sub_8040F34 +sub_8040F34: @ 8040F34 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x24 + mov r8, r0 + ldr r0, [sp, 0x38] + ldr r4, [sp, 0x3C] + ldr r5, [sp, 0x40] + ldr r6, [sp, 0x44] + lsls r6, 16 + lsrs r6, 16 + lsls r3, 16 + asrs r3, 16 + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + lsls r4, 16 + asrs r4, 16 + str r4, [sp, 0x4] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x8] + str r6, [sp, 0xC] + add r0, sp, 0x10 + bl sub_8040F08 + add r0, sp, 0x10 + mov r1, r8 + movs r2, 0x1 + bl BgAffineSet + add sp, 0x24 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8040F34 + + thumb_func_start sub_8040F80 +sub_8040F80: @ 8040F80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + str r2, [sp, 0x20] + adds r4, r3, 0 + ldr r7, [sp, 0x5C] + lsls r0, 24 + lsls r1, 24 + ldr r2, _08041008 + lsrs r1, 23 + lsrs r0, 21 + adds r1, r0 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + str r0, [sp, 0x24] + adds r1, r2 + ldrb r1, [r1] + str r1, [sp, 0x28] + movs r1, 0 + cmp r1, r0 + bcc _08040FB4 + b _08041136 +_08040FB4: + movs r0, 0x20 + ldr r2, [sp, 0x28] + subs r0, r2 + lsls r0, 1 + str r0, [sp, 0x2C] +_08040FBE: + movs r2, 0 + adds r1, 0x1 + str r1, [sp, 0x34] + ldr r3, [sp, 0x28] + cmp r2, r3 + bcc _08040FCC + b _08041124 +_08040FCC: + ldr r0, _0804100C + mov r8, r0 +_08040FD0: + ldrh r1, [r4] + ldr r0, _08041010 + ands r0, r1 + lsls r0, 5 + mov r12, r0 + movs r0, 0xC0 + lsls r0, 4 + ands r0, r1 + mov r3, sp + strh r1, [r3, 0x38] + cmp r0, 0 + bne _08041018 + ldr r0, [sp, 0x20] + add r0, r12 + mov r1, r8 + str r0, [r1] + str r7, [r1, 0x4] + ldr r3, _08041014 + str r3, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r4, 0x2 + str r4, [sp, 0x30] + adds r7, 0x20 + mov r10, r7 + adds r2, 0x1 + mov r9, r2 + b _08041112 + .align 2, 0 +_08041008: .4byte gUnknown_082087C4 +_0804100C: .4byte 0x040000d4 +_08041010: .4byte 0x000003ff +_08041014: .4byte 0x84000008 +_08041018: + movs r1, 0x80 + lsls r1, 4 + cmp r0, r1 + bne _08041068 + movs r3, 0 + adds r4, 0x2 + str r4, [sp, 0x30] + movs r0, 0x20 + adds r0, r7 + mov r10, r0 + adds r2, 0x1 + mov r9, r2 + ldr r4, _08041060 + ldr r6, _08041064 + movs r5, 0x7 +_08041036: + lsls r2, r3, 24 + asrs r2, 24 + subs r0, r5, r2 + lsls r0, 2 + add r0, r12 + ldr r1, [sp, 0x20] + adds r0, r1, r0 + lsls r1, r2, 2 + adds r1, r7, r1 + str r0, [r4] + str r1, [r4, 0x4] + str r6, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r2, 0x1 + lsls r2, 24 + lsrs r3, r2, 24 + asrs r2, 24 + cmp r2, 0x7 + ble _08041036 + b _08041112 + .align 2, 0 +_08041060: .4byte 0x040000d4 +_08041064: .4byte 0x84000001 +_08041068: + movs r3, 0 + adds r4, 0x2 + str r4, [sp, 0x30] + movs r0, 0x20 + adds r0, r7 + mov r10, r0 + adds r2, 0x1 + mov r9, r2 +_08041078: + movs r2, 0 + lsls r4, r3, 24 + lsls r0, r4, 2 + lsrs r0, 24 + adds r6, r0, 0x3 + mov r1, r12 + adds r5, r1, r0 +_08041086: + lsls r1, r2, 24 + asrs r1, 24 + subs r0, r6, r1 + mov r2, sp + adds r3, r2, r0 + adds r0, r5, r1 + ldr r2, [sp, 0x20] + adds r0, r2, r0 + ldrb r2, [r0] + movs r0, 0xF + ands r0, r2 + lsls r0, 4 + lsrs r2, 4 + orrs r0, r2 + strb r0, [r3] + adds r1, 0x1 + lsls r1, 24 + lsrs r2, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _08041086 + movs r3, 0x80 + lsls r3, 17 + adds r0, r4, r3 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x7 + ble _08041078 + movs r0, 0x80 + lsls r0, 4 + mov r1, sp + ldrh r1, [r1, 0x38] + ands r0, r1 + cmp r0, 0 + beq _08041104 + movs r3, 0 + ldr r4, _080410FC + ldr r6, _08041100 + movs r5, 0x7 +_080410D4: + lsls r1, r3, 24 + asrs r1, 24 + subs r0, r5, r1 + lsls r0, 2 + mov r3, sp + adds r2, r3, r0 + lsls r0, r1, 2 + adds r0, r7, r0 + str r2, [r4] + str r0, [r4, 0x4] + str r6, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r1, 0x1 + lsls r1, 24 + lsrs r3, r1, 24 + asrs r1, 24 + cmp r1, 0x7 + ble _080410D4 + b _08041112 + .align 2, 0 +_080410FC: .4byte 0x040000d4 +_08041100: .4byte 0x84000001 +_08041104: + mov r0, sp + mov r1, r8 + str r0, [r1] + str r7, [r1, 0x4] + ldr r2, _08041148 + str r2, [r1, 0x8] + ldr r0, [r1, 0x8] +_08041112: + ldr r4, [sp, 0x30] + mov r7, r10 + mov r3, r9 + lsls r0, r3, 24 + lsrs r2, r0, 24 + ldr r0, [sp, 0x28] + cmp r2, r0 + bcs _08041124 + b _08040FD0 +_08041124: + ldr r1, [sp, 0x2C] + adds r4, r1 + ldr r2, [sp, 0x34] + lsls r0, r2, 24 + lsrs r1, r0, 24 + ldr r3, [sp, 0x24] + cmp r1, r3 + bcs _08041136 + b _08040FBE +_08041136: + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08041148: .4byte 0x84000008 + thumb_func_end sub_8040F80 + + thumb_func_start sub_804114C +sub_804114C: @ 804114C + push {lr} + adds r2, r0, 0 + movs r1, 0 + movs r3, 0x1 +_08041154: + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _08041160 + adds r0, r1, 0 + b _0804116E +_08041160: + lsrs r2, 1 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1F + bls _08041154 + movs r0, 0 +_0804116E: + pop {r1} + bx r1 + thumb_func_end sub_804114C + + thumb_func_start sub_8041174 +sub_8041174: @ 8041174 + push {r4-r7,lr} + adds r7, r0, 0 + adds r4, r1, 0 + ldr r2, _080411A4 + movs r3, 0 + cmp r3, r4 + bge _080411C0 + movs r6, 0x1 + ldr r0, _080411A8 + adds r5, r0, 0 +_08041188: + adds r0, r7, r3 + ldrb r0, [r0] + eors r2, r0 + movs r1, 0 + adds r3, 0x1 +_08041192: + adds r0, r2, 0 + ands r0, r6 + cmp r0, 0 + beq _080411AC + lsrs r0, r2, 1 + eors r0, r5 + lsls r0, 16 + lsrs r2, r0, 16 + b _080411AE + .align 2, 0 +_080411A4: .4byte 0x00001121 +_080411A8: .4byte 0x00008408 +_080411AC: + lsrs r2, 1 +_080411AE: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bls _08041192 + lsls r0, r3, 16 + lsrs r3, r0, 16 + cmp r3, r4 + blt _08041188 +_080411C0: + mvns r0, r2 + lsls r0, 16 + lsrs r0, 16 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8041174 + + thumb_func_start unref_sub_80411CC +unref_sub_80411CC: @ 80411CC + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldr r2, _08041208 + movs r3, 0 + cmp r3, r4 + bge _080411FA + ldr r6, _0804120C +_080411DC: + lsrs r1, r2, 8 + adds r0, r5, r3 + ldrb r0, [r0] + eors r2, r0 + lsls r0, r2, 24 + lsrs r0, 23 + adds r0, r6 + ldrh r0, [r0] + adds r2, r0, 0 + eors r2, r1 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + blt _080411DC +_080411FA: + mvns r0, r2 + lsls r0, 16 + lsrs r0, 16 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08041208: .4byte 0x00001121 +_0804120C: .4byte gUnknown_082087DC + thumb_func_end unref_sub_80411CC + + thumb_func_start BlendPalette +BlendPalette: @ 8041210 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 16 + lsrs r1, 16 + mov r12, r1 + lsls r2, 24 + lsrs r7, r2, 24 + mov r0, sp + strh r3, [r0] + movs r6, 0 + cmp r6, r12 + bcs _08041296 + ldr r0, _080412A8 + mov r10, r0 + ldr r1, _080412AC + mov r9, r1 +_0804123E: + mov r0, r8 + adds r5, r6, r0 + lsls r5, 16 + lsrs r5, 15 + mov r1, r10 + adds r0, r5, r1 + ldr r3, [r0] + lsls r4, r3, 27 + lsls r2, r3, 22 + lsls r3, 17 + add r5, r9 + lsrs r4, 27 + ldr r1, [sp] + lsls r0, r1, 27 + lsrs r0, 27 + subs r0, r4 + muls r0, r7 + asrs r0, 4 + adds r4, r0 + lsrs r2, 27 + lsls r0, r1, 22 + lsrs r0, 27 + subs r0, r2 + muls r0, r7 + asrs r0, 4 + adds r2, r0 + lsls r2, 5 + orrs r4, r2 + lsrs r3, 27 + lsls r1, 17 + lsrs r1, 27 + subs r1, r3 + adds r0, r1, 0 + muls r0, r7 + asrs r0, 4 + adds r3, r0 + lsls r3, 10 + orrs r4, r3 + strh r4, [r5] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r12 + bcc _0804123E +_08041296: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080412A8: .4byte 0x0202eac8 +_080412AC: .4byte 0x0202eec8 + thumb_func_end BlendPalette + + thumb_func_start pokemon_get_nick +pokemon_get_nick: @ 80412B0 + push {r4,lr} + sub sp, 0x14 + adds r4, r1, 0 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + adds r0, r4, 0 + mov r1, sp + bl StringCopy10 + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + thumb_func_end pokemon_get_nick + + thumb_func_start pokemon_get_nick_ +pokemon_get_nick_: @ 80412D0 + push {r4,lr} + sub sp, 0x14 + adds r4, r1, 0 + movs r1, 0x2 + mov r2, sp + bl PokemonGetEncryptedField + adds r0, r4, 0 + mov r1, sp + bl StringCopy10 + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + thumb_func_end pokemon_get_nick_ + + thumb_func_start daycare_count_pokemon +daycare_count_pokemon: @ 80412F0 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + movs r4, 0 +_080412F8: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r6, r0 + movs r1, 0xB + bl PokemonGetEncryptedField + cmp r0, 0 + beq _08041310 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_08041310: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _080412F8 + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end daycare_count_pokemon + + thumb_func_start sub_8041324 +sub_8041324: @ 8041324 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + mov r10, r1 + movs r7, 0 + movs r5, 0 + mov r6, r10 + adds r6, 0x74 + movs r0, 0x1 + mov r8, r0 +_0804133E: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + cmp r0, 0 + beq _0804136E + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r4, 0 + movs r1, 0xC + bl PokemonGetEncryptedField + adds r1, r0, 0 + cmp r1, 0 + bne _0804136E + lsls r0, r5, 1 + adds r0, r6, r0 + b _08041374 +_0804136E: + lsls r0, r5, 1 + adds r0, r6, r0 + mov r1, r8 +_08041374: + strh r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _0804133E + mov r0, r10 + str r7, [r0, 0x70] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8041324 + + thumb_func_start daycare_empty_slot +daycare_empty_slot: @ 8041394 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_0804139A: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r5, r0 + movs r1, 0xB + bl PokemonGetEncryptedField + cmp r0, 0 + bne _080413B2 + lsls r0, r4, 24 + asrs r0, 24 + b _080413C0 +_080413B2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0804139A + movs r0, 0x1 + negs r0, r0 +_080413C0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end daycare_empty_slot + + thumb_func_start sub_80413C8 +sub_80413C8: @ 80413C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + mov r8, r1 + mov r0, r8 + bl daycare_empty_slot + lsls r0, 24 + lsrs r4, r0, 24 + mov r9, r4 + adds r0, r7, 0 + bl sub_80A2B94 + lsls r0, 24 + cmp r0, 0 + beq _0804144A + lsls r0, r4, 24 + asrs r0, 24 + lsls r4, r0, 3 + subs r4, r0 + lsls r4, 3 + adds r5, r4, 0 + adds r5, 0xA0 + add r5, r8 + adds r6, r5, 0 + adds r6, 0x24 + ldr r1, _08041490 + adds r0, r6, 0 + bl StringCopy + adds r0, r6, 0 + movs r1, 0xFC + bl sub_814A518 + adds r6, 0x8 + adds r0, r7, 0 + adds r1, r6, 0 + bl pokemon_get_nick + adds r0, r7, 0 + movs r1, 0x40 + bl PokemonGetField + lsls r0, 24 + lsrs r0, 24 + add r4, r8 + ldr r2, _08041494 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r4, 0xA0 + ldr r0, _08041498 + adds r1, r0 + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + adds r0, r7, 0 + bl sub_80A2DF8 +_0804144A: + mov r2, r9 + lsls r4, r2, 24 + asrs r4, 24 + lsls r5, r4, 2 + adds r4, r5, r4 + lsls r4, 4 + add r4, r8 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x50 + bl memcpy + adds r0, r4, 0 + bl pokemon_restore_pp + movs r0, 0x88 + lsls r0, 1 + add r0, r8 + adds r0, r5 + movs r1, 0 + str r1, [r0] + adds r0, r7, 0 + bl zero_pokemon_struct + bl party_compaction + bl calc_player_party_count + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08041490: .4byte 0x02024ea4 +_08041494: .4byte 0x02025734 +_08041498: .4byte 0x00002b4c + thumb_func_end sub_80413C8 + + thumb_func_start daycare_send +daycare_send: @ 804149C + push {lr} + ldr r0, _080414B4 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080414B8 + adds r0, r1 + ldr r1, _080414BC + bl sub_80413C8 + pop {r0} + bx r0 + .align 2, 0 +_080414B4: .4byte 0x03005ce0 +_080414B8: .4byte 0x03004360 +_080414BC: .4byte 0x020286d0 + thumb_func_end daycare_send + + thumb_func_start sub_80414C0 +sub_80414C0: @ 80414C0 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r5, 0 + adds r4, 0x50 + adds r0, r4, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + cmp r0, 0 + beq _08041516 + adds r0, r5, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + adds r6, r0, 0 + cmp r6, 0 + bne _08041516 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x50 + bl memcpy + adds r0, r4, 0 + bl zero_pokemon_boxed_data + adds r0, r5, 0 + adds r0, 0xA0 + adds r4, 0x88 + adds r1, r4, 0 + movs r2, 0x38 + bl memcpy + movs r0, 0x88 + lsls r0, 1 + adds r2, r5, r0 + adds r0, 0x4 + adds r1, r5, r0 + ldr r0, [r1] + str r0, [r2] + str r6, [r1] + adds r0, r4, 0 + bl sub_80417F4 +_08041516: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80414C0 + + thumb_func_start sub_804151C +sub_804151C: @ 804151C + push {r4-r7,lr} + adds r4, r0, 0 + movs r5, 0 + ldr r7, _08041538 +_08041524: + adds r0, r4, 0 + bl sub_8040300 + lsls r0, 24 + cmp r0, 0 + beq _08041560 + movs r6, 0x1 + adds r5, 0x1 + b _0804154C + .align 2, 0 +_08041538: .4byte 0x0000ffff +_0804153C: + movs r6, 0 + cmp r0, r7 + bne _0804154C + ldr r0, _0804156C + ldrh r1, [r0] + adds r0, r4, 0 + bl sub_803B8D4 +_0804154C: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_803B7C8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0804153C + cmp r5, 0x63 + ble _08041524 +_08041560: + adds r0, r4, 0 + bl pokemon_calc_effective_stats + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804156C: .4byte 0x02024e82 + thumb_func_end sub_804151C + + thumb_func_start sub_8041570 +sub_8041570: @ 8041570 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x68 + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r7, r4, 2 + adds r0, r7, r4 + lsls r0, 4 + adds r6, r5, r0 + ldr r1, _08041640 + adds r0, r6, 0 + bl pokemon_get_nick_ + adds r0, r6, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + adds r0, r6, 0 + mov r1, sp + bl sub_803B4B4 + mov r0, sp + movs r1, 0x38 + bl PokemonGetField + cmp r0, 0x64 + beq _080415D8 + mov r0, sp + movs r1, 0x19 + bl PokemonGetField + movs r2, 0x88 + lsls r2, 1 + adds r1, r5, r2 + adds r1, r7 + ldr r1, [r1] + adds r0, r1 + str r0, [sp, 0x64] + add r2, sp, 0x64 + mov r0, sp + movs r1, 0x19 + bl pokemon_setattr + mov r0, sp + bl sub_804151C +_080415D8: + ldr r0, _08041644 + movs r1, 0xFA + lsls r1, 1 + adds r1, r0 + mov r8, r1 + mov r0, r8 + mov r1, sp + movs r2, 0x64 + bl memcpy + lsls r0, r4, 3 + subs r0, r4 + lsls r1, r0, 3 + adds r0, r5, r1 + adds r0, 0xC0 + ldrh r0, [r0] + cmp r0, 0 + beq _08041610 + adds r4, r1, 0 + adds r4, 0xA0 + adds r4, r5, r4 + mov r0, r8 + adds r1, r4, 0 + bl sub_80A2D88 + adds r0, r4, 0 + bl sub_80417F4 +_08041610: + bl party_compaction + adds r0, r6, 0 + bl zero_pokemon_boxed_data + movs r2, 0x88 + lsls r2, 1 + adds r0, r5, r2 + adds r0, r7 + movs r1, 0 + str r1, [r0] + adds r0, r5, 0 + bl sub_80414C0 + bl calc_player_party_count + mov r0, r9 + add sp, 0x68 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08041640: .4byte 0x020231cc +_08041644: .4byte 0x03004360 + thumb_func_end sub_8041570 + + thumb_func_start sub_8041648 +sub_8041648: @ 8041648 + push {lr} + ldr r0, _0804165C + ldr r1, _08041660 + ldrb r1, [r1] + bl sub_8041570 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_0804165C: .4byte 0x020286d0 +_08041660: .4byte 0x0202e8cc + thumb_func_end sub_8041648 + + thumb_func_start sub_8041664 +sub_8041664: @ 8041664 + push {r4,r5,lr} + sub sp, 0x54 + adds r4, r0, 0 + adds r5, r1, 0 + mov r0, sp + adds r1, r4, 0 + movs r2, 0x50 + bl memcpy + adds r0, r4, 0 + movs r1, 0x19 + bl PokemonGetEncryptedField + adds r0, r5 + str r0, [sp, 0x50] + add r2, sp, 0x50 + mov r0, sp + movs r1, 0x19 + bl PokemonSetEncryptedField + mov r0, sp + bl sub_803B570 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x54 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8041664 + + thumb_func_start sub_80416A0 +sub_80416A0: @ 80416A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + lsls r0, r4, 2 + mov r8, r0 + add r4, r8 + lsls r4, 4 + adds r4, r5, r4 + adds r0, r4, 0 + bl sub_803B570 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x88 + lsls r0, 1 + adds r5, r0 + add r5, r8 + ldr r1, [r5] + adds r0, r4, 0 + bl sub_8041664 + lsls r0, 24 + lsrs r0, 24 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80416A0 + + thumb_func_start sub_80416E8 +sub_80416E8: @ 80416E8 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + adds r1, r4, 0 + bl sub_80416A0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r6, r0 + ldr r1, _08041720 + adds r0, r6, 0 + bl pokemon_get_nick_ + ldr r0, _08041724 + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08041720: .4byte 0x020231cc +_08041724: .4byte 0x020232cc + thumb_func_end sub_80416E8 + + thumb_func_start sub_8041728 +sub_8041728: @ 8041728 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + adds r1, r4, 0 + bl sub_80416A0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r6, r0 + ldr r1, _08041768 + adds r0, r6, 0 + bl pokemon_get_nick_ + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + adds r4, 0x64 + ldr r0, _0804176C + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08041768: .4byte 0x020231cc +_0804176C: .4byte 0x020232cc + thumb_func_end sub_8041728 + + thumb_func_start sub_8041770 +sub_8041770: @ 8041770 + push {lr} + ldr r0, _08041784 + ldr r1, _08041788 + ldrb r1, [r1] + bl sub_8041728 + ldr r1, _0804178C + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08041784: .4byte 0x020286d0 +_08041788: .4byte 0x0202e8cc +_0804178C: .4byte 0x0202e8ce + thumb_func_end sub_8041770 + + thumb_func_start sub_8041790 +sub_8041790: @ 8041790 + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080417AC + ldr r1, _080417B0 + adds r3, r2, r1 + ldr r1, [r3] + adds r1, r0 + str r1, [r3] + ldr r1, _080417B4 + adds r2, r1 + ldr r1, [r2] + adds r1, r0 + str r1, [r2] + bx lr + .align 2, 0 +_080417AC: .4byte 0x02025734 +_080417B0: .4byte 0x000030ac +_080417B4: .4byte 0x000030b0 + thumb_func_end sub_8041790 + + thumb_func_start sub_80417B8 +sub_80417B8: @ 80417B8 + push {r4,r5,lr} + ldr r5, _080417D8 + ldrh r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + ldr r4, _080417DC + adds r0, r4 + movs r1, 0xB + bl PokemonGetEncryptedField + cmp r0, 0 + bne _080417E0 + movs r0, 0 + b _080417EC + .align 2, 0 +_080417D8: .4byte 0x0202e8cc +_080417DC: .4byte 0x020286d0 +_080417E0: + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_80416E8 + lsls r0, 24 + lsrs r0, 24 +_080417EC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80417B8 + + thumb_func_start sub_80417F4 +sub_80417F4: @ 80417F4 + push {lr} + movs r3, 0 + movs r2, 0x7 + adds r1, r0, 0 + adds r1, 0x2B +_080417FE: + strb r3, [r1] + subs r1, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _080417FE + adds r2, r0, 0 + adds r2, 0x2C + movs r3, 0 + adds r1, r0, 0 + adds r1, 0x36 +_08041812: + strb r3, [r1] + subs r1, 0x1 + cmp r1, r2 + bge _08041812 + bl sub_80A2B40 + pop {r0} + bx r0 + thumb_func_end sub_80417F4 + + thumb_func_start unref_sub_8041824 +unref_sub_8041824: @ 8041824 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 +_0804182A: + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 4 + adds r0, r6, r0 + bl zero_pokemon_boxed_data + movs r1, 0x88 + lsls r1, 1 + adds r0, r6, r1 + adds r0, r4 + movs r4, 0 + str r4, [r0] + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 3 + adds r0, 0xA0 + adds r0, r6, r0 + bl sub_80417F4 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _0804182A + movs r2, 0x8C + lsls r2, 1 + adds r0, r6, r2 + movs r1, 0 + strh r4, [r0] + adds r2, 0x2 + adds r0, r6, r2 + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end unref_sub_8041824 + + thumb_func_start sub_8041870 +sub_8041870: @ 8041870 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0 + mov r8, r0 + ldr r0, _0804189C + mov r12, r0 +_08041882: + movs r7, 0 + movs r6, 0x1 + movs r4, 0x80 + lsls r4, 9 + movs r5, 0x28 + mov r3, r12 + adds r3, 0x28 +_08041890: + movs r1, 0 + ldrh r0, [r3, 0x4] + cmp r0, r2 + bne _080418A0 + lsrs r2, r4, 16 + b _080418CC + .align 2, 0 +_0804189C: .4byte gEvolutionTable +_080418A0: + adds r1, 0x1 + cmp r1, 0x4 + bgt _080418B6 + lsls r0, r1, 3 + adds r0, r5 + add r0, r12 + ldrh r0, [r0, 0x4] + cmp r0, r2 + bne _080418A0 + lsrs r2, r4, 16 + movs r7, 0x1 +_080418B6: + cmp r7, 0 + bne _080418CC + movs r0, 0x80 + lsls r0, 9 + adds r4, r0 + adds r5, 0x28 + adds r3, 0x28 + adds r6, 0x1 + ldr r0, _080418EC + cmp r6, r0 + ble _08041890 +_080418CC: + movs r0, 0xCE + lsls r0, 1 + cmp r6, r0 + beq _080418DE + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x4 + ble _08041882 +_080418DE: + adds r0, r2, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080418EC: .4byte 0x0000019b + thumb_func_end sub_8041870 + + thumb_func_start sub_80418F0 +sub_80418F0: @ 80418F0 + push {r4,lr} + adds r4, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08041918 + bl __umodsi3 + adds r0, 0x1 + movs r1, 0x8C + lsls r1, 1 + adds r4, r1 + strh r0, [r4] + movs r0, 0x86 + bl FlagSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08041918: .4byte 0x0000fffe + thumb_func_end sub_80418F0 + + thumb_func_start sub_804191C +sub_804191C: @ 804191C + push {r4,lr} + adds r4, r0, 0 + bl Random + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + movs r2, 0x8C + lsls r2, 1 + adds r4, r2 + orrs r1, r0 + strh r1, [r4] + movs r0, 0x86 + bl FlagSet + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804191C + + thumb_func_start sub_8041940 +sub_8041940: @ 8041940 + push {lr} + ldr r0, _0804194C + bl sub_80418F0 + pop {r0} + bx r0 + .align 2, 0 +_0804194C: .4byte 0x020286d0 + thumb_func_end sub_8041940 + + thumb_func_start sub_8041950 +sub_8041950: @ 8041950 + push {lr} + ldr r0, _0804195C + bl sub_804191C + pop {r0} + bx r0 + .align 2, 0 +_0804195C: .4byte 0x020286d0 + thumb_func_end sub_8041950 + + thumb_func_start sub_8041960 +sub_8041960: @ 8041960 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r1, r4, r1 + movs r0, 0xFF + strb r0, [r1] + movs r2, 0 +_08041972: + mov r1, sp + adds r0, r1, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x5 + ble _08041972 + movs r3, 0 + movs r2, 0 +_08041986: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + adds r0, r1, 0 + cmp r0, 0xFF + beq _08041998 + adds r0, r4, r3 + strb r1, [r0] + adds r3, 0x1 +_08041998: + adds r2, 0x1 + cmp r2, 0x5 + ble _08041986 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8041960 + + thumb_func_start sub_80419A8 +sub_80419A8: @ 80419A8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r9, r0 + mov r8, r1 + movs r5, 0 + add r1, sp, 0x4 + add r7, sp, 0xC + adds r2, r1, 0 +_080419BE: + adds r0, r2, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _080419BE + movs r5, 0 + adds r6, r1, 0 +_080419D0: + bl Random + mov r1, sp + adds r4, r1, r5 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + subs r1, r5 + bl __modsi3 + adds r0, r6, r0 + ldrb r0, [r0] + strb r0, [r4] + ldrb r1, [r4] + adds r0, r6, 0 + bl sub_8041960 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _080419D0 + movs r5, 0 + movs r4, 0x1 +_08041A00: + bl Random + adds r1, r7, r5 + lsls r0, 16 + lsrs r0, 16 + ands r0, r4 + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _08041A00 + movs r5, 0 +_08041A1A: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08041B02 + lsls r0, 2 + ldr r1, _08041A30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08041A30: .4byte _08041A34 + .align 2, 0 +_08041A34: + .4byte _08041A4C + .4byte _08041A6C + .4byte _08041A88 + .4byte _08041AA4 + .4byte _08041AC0 + .4byte _08041AE2 +_08041A4C: + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x27 + bl PokemonGetEncryptedField + add r2, sp, 0x10 + strb r0, [r2] + mov r0, r9 + movs r1, 0x27 + bl pokemon_setattr + b _08041B02 +_08041A6C: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x28 + bl PokemonGetEncryptedField + strb r0, [r4] + mov r0, r9 + movs r1, 0x28 + b _08041ADA +_08041A88: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x29 + bl PokemonGetEncryptedField + strb r0, [r4] + mov r0, r9 + movs r1, 0x29 + b _08041ADA +_08041AA4: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x2A + bl PokemonGetEncryptedField + strb r0, [r4] + mov r0, r9 + movs r1, 0x2A + b _08041ADA +_08041AC0: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x2B + bl PokemonGetEncryptedField + strb r0, [r4] + mov r0, r9 + movs r1, 0x2B +_08041ADA: + adds r2, r4, 0 + bl pokemon_setattr + b _08041B02 +_08041AE2: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x2C + bl PokemonGetEncryptedField + strb r0, [r4] + mov r0, r9 + movs r1, 0x2C + adds r2, r4, 0 + bl pokemon_setattr +_08041B02: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _08041A1A + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80419A8 + + thumb_func_start pokemon_get_eggmoves +pokemon_get_eggmoves: @ 8041B1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r1 + movs r6, 0 + movs r4, 0 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r5, _08041B44 + ldrh r1, [r5] + ldr r7, _08041B48 + adds r0, r3, r7 + cmp r1, r0 + bne _08041B4C + movs r4, 0x1 + b _08041B6E + .align 2, 0 +_08041B44: .4byte gEggMoves +_08041B48: .4byte 0x00004e20 +_08041B4C: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _08041BB8 + ldr r5, _08041BBC + cmp r2, r0 + bhi _08041B6E + lsls r0, r2, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r7, _08041BC0 + adds r0, r3, r7 + cmp r1, r0 + bne _08041B4C + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_08041B6E: + movs r2, 0 + lsls r0, r4, 1 + adds r0, r5 + ldrh r0, [r0] + ldr r1, _08041BC0 + cmp r0, r1 + bhi _08041BAA + adds r7, r5, 0 + adds r3, r1, 0 +_08041B80: + lsls r1, r2, 1 + add r1, r8 + adds r0, r4, r2 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x9 + bhi _08041BAA + adds r0, r4, r2 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, r3 + bls _08041B80 +_08041BAA: + lsls r0, r6, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08041BB8: .4byte 0x00000471 +_08041BBC: .4byte gEggMoves +_08041BC0: .4byte 0x00004e20 + thumb_func_end pokemon_get_eggmoves + + thumb_func_start daycare_build_child_moveset +daycare_build_child_moveset: @ 8041BC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r7, r0, 0 + mov r10, r1 + mov r9, r2 + movs r0, 0 + str r0, [sp] + movs r6, 0 + ldr r5, _08041CC8 + movs r2, 0 + ldr r4, _08041CCC + ldr r3, _08041CD0 +_08041BE4: + lsls r1, r6, 1 + adds r0, r1, r5 + strh r2, [r0] + adds r0, r1, r4 + strh r2, [r0] + adds r1, r3 + strh r2, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08041BE4 + movs r6, 0 + ldr r2, _08041CD4 + movs r1, 0 +_08041C02: + lsls r0, r6, 1 + adds r0, r2 + strh r1, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x9 + bls _08041C02 + movs r6, 0 + ldr r2, _08041CD8 + movs r1, 0 +_08041C18: + lsls r0, r6, 1 + adds r0, r2 + strh r1, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x31 + bls _08041C18 + adds r0, r7, 0 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08041CD8 + bl sub_804051C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r6, 0 + ldr r1, _08041CCC + mov r8, r1 +_08041C46: + adds r5, r6, 0 + adds r5, 0xD + mov r0, r10 + adds r1, r5, 0 + bl PokemonGetEncryptedField + lsls r4, r6, 1 + mov r2, r8 + adds r1, r4, r2 + strh r0, [r1] + mov r0, r9 + adds r1, r5, 0 + bl PokemonGetEncryptedField + ldr r1, _08041CC8 + adds r4, r1 + strh r0, [r4] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08041C46 + ldr r1, _08041CD4 + adds r0, r7, 0 + bl pokemon_get_eggmoves + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r6, 0 +_08041C82: + ldr r0, _08041CCC + lsls r1, r6, 1 + adds r2, r1, r0 + ldrh r1, [r2] + mov r9, r0 + cmp r1, 0 + beq _08041CF8 + movs r5, 0 + cmp r5, r8 + bcs _08041CEA + adds r4, r2, 0 + ldr r2, _08041CDC +_08041C9A: + ldr r0, _08041CD4 + lsls r1, r5, 1 + adds r1, r0 + ldrh r0, [r4] + ldrh r1, [r1] + cmp r0, r1 + bne _08041CE0 + adds r1, r0, 0 + adds r0, r7, 0 + str r2, [sp, 0x8] + bl pokemon_moveset_pad_ + lsls r0, 16 + lsrs r0, 16 + ldr r2, [sp, 0x8] + cmp r0, r2 + bne _08041CEA + ldrh r1, [r4] + adds r0, r7, 0 + bl sub_803B8D4 + b _08041CEA + .align 2, 0 +_08041CC8: .4byte 0x03000500 +_08041CCC: .4byte 0x030004d8 +_08041CD0: .4byte 0x030004e0 +_08041CD4: .4byte 0x030004e8 +_08041CD8: .4byte 0x03000470 +_08041CDC: .4byte 0x0000ffff +_08041CE0: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _08041C9A +_08041CEA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, _08041E14 + mov r9, r3 + cmp r6, 0x3 + bls _08041C82 +_08041CF8: + movs r6, 0 +_08041CFA: + lsls r0, r6, 1 + mov r2, r9 + adds r1, r0, r2 + ldrh r1, [r1] + adds r2, r0, 0 + adds r6, 0x1 + mov r8, r6 + cmp r1, 0 + beq _08041D5C + movs r5, 0 + ldr r0, _08041E14 + adds r4, r2, r0 + ldr r6, _08041E18 + mov r9, r0 +_08041D16: + ldr r3, _08041E1C + adds r0, r5, r3 + lsls r0, 16 + lsrs r0, 16 + bl ItemIdToBattleMoveId + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bne _08041D52 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl sub_8040374 + cmp r0, 0 + beq _08041D52 + ldrh r1, [r4] + adds r0, r7, 0 + bl pokemon_moveset_pad_ + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bne _08041D52 + ldrh r1, [r4] + adds r0, r7, 0 + bl sub_803B8D4 +_08041D52: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x39 + bls _08041D16 +_08041D5C: + mov r1, r8 + lsls r0, r1, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08041CFA + movs r6, 0 + mov r2, r9 + ldrh r0, [r2] + ldr r3, _08041E20 + mov r10, r3 + cmp r0, 0 + beq _08041DC6 + mov r4, r9 + ldr r0, _08041E24 + mov r9, r0 + mov r12, r10 +_08041D7C: + movs r5, 0 + lsls r2, r6, 1 + adds r6, 0x1 + mov r8, r6 + adds r3, r2, r4 +_08041D86: + lsls r0, r5, 1 + add r0, r9 + ldrh r2, [r3] + adds r1, r2, 0 + ldrh r0, [r0] + cmp r1, r0 + bne _08041DA8 + cmp r1, 0 + beq _08041DA8 + ldr r1, [sp] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + lsls r1, 1 + add r1, r12 + strh r2, [r1] +_08041DA8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _08041D86 + mov r1, r8 + lsls r0, r1, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bhi _08041DC6 + lsls r0, r6, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0 + bne _08041D7C +_08041DC6: + movs r6, 0 + mov r2, r10 + ldrh r0, [r2] + cmp r0, 0 + beq _08041E50 +_08041DD0: + movs r5, 0 + adds r3, r6, 0x1 + mov r8, r3 + ldr r0, [sp, 0x4] + cmp r5, r0 + bcs _08041E38 + ldr r2, _08041E18 +_08041DDE: + ldr r1, _08041E28 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + beq _08041E2C + lsls r0, r6, 1 + mov r3, r10 + adds r4, r0, r3 + ldrh r0, [r4] + cmp r0, r1 + bne _08041E2C + adds r1, r0, 0 + adds r0, r7, 0 + str r2, [sp, 0x8] + bl pokemon_moveset_pad_ + lsls r0, 16 + lsrs r0, 16 + ldr r2, [sp, 0x8] + cmp r0, r2 + bne _08041E38 + ldrh r1, [r4] + adds r0, r7, 0 + bl sub_803B8D4 + b _08041E38 + .align 2, 0 +_08041E14: .4byte 0x030004d8 +_08041E18: .4byte 0x0000ffff +_08041E1C: .4byte 0x00000121 +_08041E20: .4byte 0x030004e0 +_08041E24: .4byte 0x03000500 +_08041E28: .4byte 0x03000470 +_08041E2C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [sp, 0x4] + cmp r5, r0 + bcc _08041DDE +_08041E38: + mov r1, r8 + lsls r0, r1, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bhi _08041E50 + ldr r0, _08041E60 + lsls r1, r6, 1 + adds r1, r0 + ldrh r1, [r1] + mov r10, r0 + cmp r1, 0 + bne _08041DD0 +_08041E50: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08041E60: .4byte 0x030004e0 + thumb_func_end daycare_build_child_moveset + + thumb_func_start sub_8041E64 +sub_8041E64: @ 8041E64 + adds r3, r0, 0 + movs r1, 0x8C + lsls r1, 1 + adds r0, r3, r1 + movs r2, 0 + movs r1, 0 + strh r1, [r0] + movs r1, 0x8D + lsls r1, 1 + adds r0, r3, r1 + strb r2, [r0] + bx lr + thumb_func_end sub_8041E64 + + thumb_func_start sub_8041E7C +sub_8041E7C: @ 8041E7C + push {lr} + ldr r0, _08041E88 + bl sub_8041E64 + pop {r0} + bx r0 + .align 2, 0 +_08041E88: .4byte 0x020286d0 + thumb_func_end sub_8041E7C + + thumb_func_start incense_effects +incense_effects: @ 8041E8C + push {r4-r7,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrh r1, [r4] + movs r7, 0xB4 + lsls r7, 1 + cmp r1, r7 + beq _08041EA4 + movs r0, 0xAF + lsls r0, 1 + cmp r1, r0 + bne _08041EE6 +_08041EA4: + adds r0, r5, 0 + movs r1, 0xC + bl PokemonGetEncryptedField + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + adds r0, 0x50 + movs r1, 0xC + bl PokemonGetEncryptedField + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r4] + cmp r0, r7 + bne _08041ED0 + cmp r6, 0xDD + beq _08041ED0 + cmp r2, 0xDD + beq _08041ED0 + movs r0, 0xCA + strh r0, [r4] +_08041ED0: + ldrh r1, [r4] + movs r0, 0xAF + lsls r0, 1 + cmp r1, r0 + bne _08041EE6 + cmp r6, 0xDC + beq _08041EE6 + cmp r2, 0xDC + beq _08041EE6 + movs r0, 0xB7 + strh r0, [r4] +_08041EE6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end incense_effects + + thumb_func_start sub_8041EEC +sub_8041EEC: @ 8041EEC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r8, r0 + adds r6, r1, 0 + movs r4, 0 + movs r7, 0x1 +_08041EFC: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + lsls r1, r4, 1 + add r1, sp + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x84 + bne _08041F26 + adds r0, r4, 0 + eors r0, r7 + strb r0, [r6] + strb r4, [r6, 0x1] + b _08041F3C +_08041F26: + adds r0, r5, 0 + bl pokemon_roll_gender + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFE + bne _08041F3C + strb r4, [r6] + adds r0, r4, 0 + eors r0, r7 + strb r0, [r6, 0x1] +_08041F3C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08041EFC + ldrb r0, [r6] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + bl sub_8041870 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bne _08041F6E + movs r0, 0x8C + lsls r0, 1 + add r0, r8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _08041F6E + movs r4, 0x20 +_08041F6E: + ldr r0, _08041FC0 + cmp r4, r0 + bne _08041F88 + subs r0, 0x6B + add r0, r8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _08041F88 + movs r4, 0xC1 + lsls r4, 1 +_08041F88: + ldrb r0, [r6, 0x1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + cmp r0, 0x84 + bne _08041FB2 + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + bl pokemon_roll_gender + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFE + beq _08041FB2 + ldrb r1, [r6, 0x1] + ldrb r0, [r6] + strb r0, [r6, 0x1] + strb r1, [r6] +_08041FB2: + adds r0, r4, 0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08041FC0: .4byte 0x00000183 + thumb_func_end sub_8041EEC + + thumb_func_start sub_8041FC4 +sub_8041FC4: @ 8041FC4 + push {r4-r6,lr} + sub sp, 0x6C + adds r5, r0, 0 + add r6, sp, 0x64 + adds r1, r6, 0 + bl sub_8041EEC + add r4, sp, 0x68 + strh r0, [r4] + adds r0, r4, 0 + adds r1, r5, 0 + bl incense_effects + ldrh r1, [r4] + mov r0, sp + adds r2, r5, 0 + bl sub_80420FC + mov r0, sp + adds r1, r5, 0 + bl sub_80419A8 + ldrb r0, [r6, 0x1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 4 + adds r1, r5, r1 + ldrb r0, [r6] + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 4 + adds r2, r5, r2 + mov r0, sp + bl daycare_build_child_moveset + mov r2, sp + adds r2, 0x6A + movs r0, 0x1 + strb r0, [r2] + mov r0, sp + movs r1, 0x2D + bl pokemon_setattr + ldr r0, _08042040 + movs r1, 0xFA + lsls r1, 1 + adds r0, r1 + mov r1, sp + movs r2, 0x64 + bl memcpy + bl party_compaction + bl calc_player_party_count + adds r0, r5, 0 + bl sub_8041E64 + add sp, 0x6C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042040: .4byte 0x03004360 + thumb_func_end sub_8041FC4 + + thumb_func_start sub_8042044 +sub_8042044: @ 8042044 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + adds r7, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 24 + lsrs r6, 24 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + adds r1, r5, 0 + movs r2, 0x5 + movs r3, 0x20 + bl create_pokemon_set_level + movs r0, 0x12 + add r0, sp + mov r8, r0 + strb r4, [r0] + movs r1, 0x4 + add r0, sp, 0x10 + strh r1, [r0] + mov r4, sp + adds r4, 0x13 + movs r0, 0x1 + mov r9, r0 + mov r0, r9 + strb r0, [r4] + adds r0, r7, 0 + movs r1, 0x26 + add r2, sp, 0x10 + bl pokemon_setattr + ldr r2, _080420F4 + adds r0, r7, 0 + movs r1, 0x2 + bl pokemon_setattr + lsls r2, r5, 3 + subs r2, r5 + lsls r2, 2 + ldr r0, _080420F8 + adds r2, r0 + adds r0, r7, 0 + movs r1, 0x20 + bl pokemon_setattr + adds r0, r7, 0 + movs r1, 0x24 + mov r2, r8 + bl pokemon_setattr + adds r0, r7, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl pokemon_setattr + cmp r6, 0 + beq _080420D6 + add r2, sp, 0x14 + movs r0, 0xFD + strb r0, [r2] + adds r0, r7, 0 + movs r1, 0x23 + bl pokemon_setattr +_080420D6: + mov r2, sp + adds r2, 0x15 + mov r0, r9 + strb r0, [r2] + adds r0, r7, 0 + movs r1, 0x2D + bl pokemon_setattr + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080420F4: .4byte gUnknown_08209AD4 +_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset + thumb_func_end sub_8042044 + + thumb_func_start sub_80420FC +sub_80420FC: @ 80420FC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x14 + adds r6, r0, 0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + bl Random + movs r1, 0x8C + lsls r1, 1 + adds r4, r1 + ldrh r1, [r4] + lsls r0, 16 + orrs r1, r0 + movs r0, 0x1 + mov r8, r0 + str r0, [sp] + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x5 + movs r3, 0x20 + bl create_pokemon_set_level + movs r1, 0x12 + add r1, sp + mov r9, r1 + strb r4, [r1] + movs r1, 0x4 + add r0, sp, 0x10 + strh r1, [r0] + mov r4, sp + adds r4, 0x13 + mov r0, r8 + strb r0, [r4] + adds r0, r6, 0 + movs r1, 0x26 + add r2, sp, 0x10 + bl pokemon_setattr + ldr r2, _08042198 + adds r0, r6, 0 + movs r1, 0x2 + bl pokemon_setattr + lsls r2, r5, 3 + subs r2, r5 + lsls r2, 2 + ldr r0, _0804219C + adds r2, r0 + adds r0, r6, 0 + movs r1, 0x20 + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x24 + mov r2, r9 + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl pokemon_setattr + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042198: .4byte gUnknown_08209AD4 +_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset + thumb_func_end sub_80420FC + + thumb_func_start sp0B8_daycare +sp0B8_daycare: @ 80421A0 + push {lr} + ldr r0, _080421AC + bl sub_8041FC4 + pop {r0} + bx r0 + .align 2, 0 +_080421AC: .4byte 0x020286d0 + thumb_func_end sp0B8_daycare + + thumb_func_start sub_80421B0 +sub_80421B0: @ 80421B0 + push {r4-r7,lr} + sub sp, 0x8 + adds r7, r0, 0 + movs r2, 0 + movs r6, 0 + adds r5, r7, 0 +_080421BC: + lsls r4, r6, 2 + adds r0, r5, 0 + movs r1, 0x5 + str r2, [sp, 0x4] + bl PokemonGetEncryptedField + ldr r2, [sp, 0x4] + cmp r0, 0 + beq _080421DE + movs r0, 0x88 + lsls r0, 1 + adds r1, r7, r0 + adds r1, r4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + adds r2, 0x1 +_080421DE: + adds r5, 0x50 + adds r6, 0x1 + cmp r6, 0x1 + bls _080421BC + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08042226 + cmp r2, 0x2 + bne _08042226 + subs r1, 0x4 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08042226 + adds r0, r7, 0 + bl daycare_relationship_score + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + muls r0, r1 + ldr r1, _08042240 + bl __udivsi3 + cmp r4, r0 + bls _08042226 + bl sub_8041940 +_08042226: + movs r0, 0x8D + lsls r0, 1 + adds r1, r7, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08042290 + movs r6, 0 + b _08042288 + .align 2, 0 +_08042240: .4byte 0x0000ffff +_08042244: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _08042270 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl PokemonGetField + cmp r0, 0 + beq _08042286 + adds r0, r4, 0 + movs r1, 0x20 + bl PokemonGetField + str r0, [sp] + cmp r0, 0 + bne _08042278 + ldr r0, _08042274 + strh r6, [r0] + movs r0, 0x1 + b _08042292 + .align 2, 0 +_08042270: .4byte 0x03004360 +_08042274: .4byte 0x0202e8cc +_08042278: + subs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x20 + mov r2, sp + bl pokemon_setattr +_08042286: + adds r6, 0x1 +_08042288: + ldr r0, _0804229C + ldrb r0, [r0] + cmp r6, r0 + bcc _08042244 +_08042290: + movs r0, 0 +_08042292: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804229C: .4byte 0x03004350 + thumb_func_end sub_80421B0 + + thumb_func_start sub_80422A0 +sub_80422A0: @ 80422A0 + push {lr} + ldr r0, _080422B0 + bl sub_80421B0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080422B0: .4byte 0x020286d0 + thumb_func_end sub_80422A0 + + thumb_func_start sub_80422B4 +sub_80422B4: @ 80422B4 + movs r1, 0x8C + lsls r1, 1 + adds r0, r1 + ldrh r1, [r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + thumb_func_end sub_80422B4 + + thumb_func_start sub_80422C4 +sub_80422C4: @ 80422C4 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + cmp r0, 0 + beq _080422FC + ldr r1, _0804231C + adds r0, r6, 0 + bl pokemon_get_nick_ + adds r0, r6, 0 + movs r1, 0x3 + bl PokemonGetEncryptedField + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08042320 + adds r0, r6, 0 + movs r1, 0x7 + adds r2, r5, 0 + bl PokemonGetEncryptedField + adds r0, r5, 0 + adds r1, r4, 0 + bl ConvertInternationalString +_080422FC: + adds r4, r6, 0 + adds r4, 0x50 + adds r0, r4, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + cmp r0, 0 + beq _08042314 + ldr r1, _08042324 + adds r0, r4, 0 + bl pokemon_get_nick_ +_08042314: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804231C: .4byte 0x020231cc +_08042320: .4byte 0x020233cc +_08042324: .4byte 0x020232cc + thumb_func_end sub_80422C4 + + thumb_func_start sub_8042328 +sub_8042328: @ 8042328 + push {r4-r6,lr} + ldr r6, _08042354 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _08042358 + adds r0, r4 + ldr r1, _0804235C + bl pokemon_get_nick_ + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0xB + bl PokemonGetEncryptedField + lsls r0, 16 + lsrs r0, 16 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08042354: .4byte 0x03005ce0 +_08042358: .4byte 0x03004360 +_0804235C: .4byte 0x020231cc + thumb_func_end sub_8042328 + + thumb_func_start sp0B5_daycare +sp0B5_daycare: @ 8042360 + push {lr} + ldr r0, _0804236C + bl sub_80422C4 + pop {r0} + bx r0 + .align 2, 0 +_0804236C: .4byte 0x020286d0 + thumb_func_end sp0B5_daycare + + thumb_func_start sp0B6_daycare +sp0B6_daycare: @ 8042370 + push {r4,lr} + ldr r4, _08042384 + adds r0, r4, 0 + bl sub_80422B4 + lsls r0, 24 + cmp r0, 0 + beq _08042388 + movs r0, 0x1 + b _080423A0 + .align 2, 0 +_08042384: .4byte 0x020286d0 +_08042388: + adds r0, r4, 0 + bl daycare_count_pokemon + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0804239A + movs r0, 0 + b _080423A0 +_0804239A: + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 +_080423A0: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sp0B6_daycare + + thumb_func_start sub_80423A8 +sub_80423A8: @ 80423A8 + push {r4-r6,lr} + adds r5, r1, 0 + movs r4, 0 + adds r1, r0, 0 +_080423B0: + movs r3, 0 + ldrh r0, [r1] + adds r2, r5, 0 +_080423B6: + ldrh r6, [r2] + cmp r0, r6 + bne _080423C0 + movs r0, 0x1 + b _080423D2 +_080423C0: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x1 + ble _080423B6 + adds r1, 0x2 + adds r4, 0x1 + cmp r4, 0x1 + ble _080423B0 + movs r0, 0 +_080423D2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80423A8 + + thumb_func_start daycare_relationship_score +daycare_relationship_score: @ 80423D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + movs r1, 0 + mov r8, r1 + mov r2, sp + adds r2, 0x8 + str r2, [sp, 0x1C] + add r1, sp, 0xC + mov r10, r1 + adds r2, 0xC + str r2, [sp, 0x20] + mov r1, sp + adds r1, 0x2 + ldr r2, _08042488 + mov r9, r2 + ldr r5, [sp, 0x1C] + adds r7, r1, 0 + mov r6, sp + ldr r1, [sp, 0x20] + str r1, [sp, 0x24] + mov r2, r10 + str r2, [sp, 0x28] + adds r4, r0, 0 +_0804240E: + adds r0, r4, 0 + movs r1, 0xB + bl PokemonGetEncryptedField + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x1 + bl PokemonGetEncryptedField + ldr r1, [sp, 0x28] + stm r1!, {r0} + str r1, [sp, 0x28] + adds r0, r4, 0 + movs r1, 0 + bl PokemonGetEncryptedField + adds r1, r0, 0 + ldrh r0, [r5] + bl pokemon_species_get_gender_info + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x24] + stm r2!, {r0} + str r2, [sp, 0x24] + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x14] + strh r0, [r6] + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x15] + strh r0, [r7] + adds r5, 0x2 + adds r7, 0x4 + adds r6, 0x4 + adds r4, 0x50 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x1 + bls _0804240E + mov r0, sp + ldrh r1, [r0] + cmp r1, 0xF + beq _08042484 + ldrh r0, [r0, 0x4] + cmp r0, 0xF + beq _08042484 + cmp r1, 0xD + bne _0804248C + cmp r0, 0xD + bne _08042490 +_08042484: + movs r0, 0 + b _080424E4 + .align 2, 0 +_08042488: .4byte gBaseStats +_0804248C: + cmp r0, 0xD + bne _0804249C +_08042490: + ldr r1, [sp, 0xC] + mov r2, r10 + ldr r0, [r2, 0x4] + cmp r1, r0 + beq _080424DE + b _080424E2 +_0804249C: + ldr r0, [sp, 0x14] + ldr r2, [sp, 0x20] + ldr r1, [r2, 0x4] + cmp r0, r1 + beq _08042484 + cmp r0, 0xFF + beq _08042484 + cmp r1, 0xFF + beq _08042484 + add r1, sp, 0x4 + mov r0, sp + bl sub_80423A8 + lsls r0, 24 + cmp r0, 0 + beq _08042484 + ldr r0, [sp, 0x1C] + ldrh r1, [r0, 0x2] + ldrh r0, [r0] + cmp r0, r1 + bne _080424D4 + ldr r1, [sp, 0xC] + mov r2, r10 + ldr r0, [r2, 0x4] + cmp r1, r0 + beq _080424E2 + movs r0, 0x46 + b _080424E4 +_080424D4: + ldr r1, [sp, 0xC] + mov r2, r10 + ldr r0, [r2, 0x4] + cmp r1, r0 + bne _080424E2 +_080424DE: + movs r0, 0x14 + b _080424E4 +_080424E2: + movs r0, 0x32 +_080424E4: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end daycare_relationship_score + + thumb_func_start daycare_relationship_score_from_savegame +daycare_relationship_score_from_savegame: @ 80424F4 + push {lr} + ldr r0, _08042504 + bl daycare_relationship_score + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08042504: .4byte 0x020286d0 + thumb_func_end daycare_relationship_score_from_savegame + + thumb_func_start sp0B9_daycare_relationship_comment +sp0B9_daycare_relationship_comment: @ 8042508 + push {lr} + bl daycare_relationship_score_from_savegame + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + movs r1, 0 + cmp r0, 0 + bne _0804251C + movs r1, 0x3 +_0804251C: + cmp r0, 0x14 + bne _08042522 + movs r1, 0x2 +_08042522: + cmp r0, 0x32 + bne _08042528 + movs r1, 0x1 +_08042528: + cmp r2, 0x46 + bne _0804252E + movs r1, 0 +_0804252E: + ldr r0, _08042540 + ldr r2, _08042544 + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_08042540: .4byte 0x020234cc +_08042544: .4byte gUnknown_08209AC4 + thumb_func_end sp0B9_daycare_relationship_comment + + thumb_func_start sub_8042548 +sub_8042548: @ 8042548 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + mov r2, sp + mov r1, sp + movs r0, 0 + strb r0, [r1, 0x1] + strb r0, [r2] + movs r3, 0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _0804258C +_08042564: + adds r1, r4, r3 + ldrb r0, [r1] + cmp r0, 0xB5 + bne _08042572 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] +_08042572: + ldrb r0, [r1] + cmp r0, 0xB6 + bne _0804257E + ldrb r0, [r2, 0x1] + adds r0, 0x1 + strb r0, [r2, 0x1] +_0804257E: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08042564 +_0804258C: + cmp r5, 0 + bne _080425A0 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0 + beq _080425A0 + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080425B4 +_080425A0: + cmp r5, 0xFE + bne _080425B8 + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080425B8 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0 + bne _080425B8 +_080425B4: + movs r0, 0x1 + b _080425BA +_080425B8: + movs r0, 0 +_080425BA: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8042548 + + thumb_func_start sub_80425C4 +sub_80425C4: @ 80425C4 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + bne _080425E4 + movs r1, 0 + bl sub_8042548 + lsls r0, 24 + cmp r0, 0 + bne _08042600 + ldr r1, _080425E0 + b _08042602 + .align 2, 0 +_080425E0: .4byte gUnknown_0820C33D +_080425E4: + cmp r1, 0xFE + bne _08042600 + adds r0, r4, 0 + movs r1, 0xFE + bl sub_8042548 + lsls r0, 24 + cmp r0, 0 + bne _08042600 + ldr r1, _080425FC + b _08042602 + .align 2, 0 +_080425FC: .4byte gUnknown_0820C33F +_08042600: + ldr r1, _08042610 +_08042602: + adds r0, r4, 0 + bl StringAppend + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08042610: .4byte gUnknown_0820C341 + thumb_func_end sub_80425C4 + + thumb_func_start sub_8042614 +sub_8042614: @ 8042614 + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + bl pokemon_roll_gender + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_80425C4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8042614 + + thumb_func_start sub_8042630 +sub_8042630: @ 8042630 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x28 + mov r8, r0 + adds r7, r1, 0 + movs r0, 0xFF + strb r0, [r7] + movs r6, 0 + add r0, sp, 0x14 + mov r9, r0 +_08042648: + lsls r0, r6, 2 + adds r0, r6 + lsls r4, r0, 4 + add r4, r8 + lsls r0, 2 + mov r1, sp + adds r5, r1, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl pokemon_get_nick_ + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8042614 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1 + bls _08042648 + adds r0, r7, 0 + mov r1, sp + bl StringCopy + ldr r4, _080426A8 + adds r0, r7, 0 + adds r1, r4, 0 + bl StringAppend + adds r0, r7, 0 + mov r1, r9 + bl StringAppend + adds r0, r7, 0 + adds r1, r4, 0 + bl StringAppend + ldr r1, _080426AC + adds r0, r7, 0 + bl StringAppend + add sp, 0x28 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080426A8: .4byte gUnknown_0842CC28 +_080426AC: .4byte gUnknown_0842CC2A + thumb_func_end sub_8042630 + + thumb_func_start sub_80426B0 +sub_80426B0: @ 80426B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + movs r0, 0xFF + strb r0, [r4] + movs r5, 0 + movs r0, 0xFC + mov r8, r0 + movs r7, 0x14 +_080426C6: + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 4 + adds r0, r6, r0 + movs r3, 0x88 + lsls r3, 1 + adds r1, r6, r3 + adds r1, r2 + ldr r1, [r1] + bl sub_8041664 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x34 + strb r0, [r4] + mov r0, r8 + strb r0, [r4, 0x1] + strb r7, [r4, 0x2] + movs r0, 0x6 + strb r0, [r4, 0x3] + adds r0, r4, 0x4 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r4, r0, 0 + mov r3, r8 + strb r3, [r4] + strb r7, [r4, 0x1] + movs r0, 0 + strb r0, [r4, 0x2] + adds r0, r4, 0x3 + ldr r1, _08042728 + bl StringCopy + adds r4, r0, 0 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _080426C6 + movs r0, 0xFF + strb r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042728: .4byte gUnknown_0842CC28 + thumb_func_end sub_80426B0 + + thumb_func_start sub_804272C +sub_804272C: @ 804272C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, _08042760 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08042768 + ldr r0, _08042764 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08042816 + subs r0, r2, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x1 + negs r0, r0 + b _0804278A + .align 2, 0 +_08042760: .4byte 0x03001770 +_08042764: .4byte 0x03004b20 +_08042768: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804279C + ldr r0, _08042798 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0x2 + beq _08042816 + adds r0, r2, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x1 +_0804278A: + bl MoveMenuCursor + movs r0, 0x5 + bl audio_play + b _08042816 + .align 2, 0 +_08042798: .4byte 0x03004b20 +_0804279C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080427E8 + bl sub_8072DEC + movs r0, 0x5 + bl audio_play + ldr r3, _080427DC + ldr r2, _080427E0 + ldr r1, _080427E4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strh r0, [r2] + strb r0, [r3] + adds r0, r4, 0 + bl DestroyTask + movs r0, 0xF + movs r1, 0x6 + movs r2, 0x1D + movs r3, 0xD + bl Reset + bl script_env_2_enable_and_set_ctx_running + b _08042816 + .align 2, 0 +_080427DC: .4byte 0x03005ce0 +_080427E0: .4byte 0x0202e8dc +_080427E4: .4byte 0x03004b20 +_080427E8: + movs r4, 0x2 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08042816 + bl sub_8072DEC + ldr r0, _0804281C + ldr r1, _08042820 + strh r4, [r1] + movs r1, 0x2 + strb r1, [r0] + adds r0, r5, 0 + bl DestroyTask + movs r0, 0xF + movs r1, 0x6 + movs r2, 0x1D + movs r3, 0xD + bl Reset + bl script_env_2_enable_and_set_ctx_running +_08042816: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804281C: .4byte 0x03005ce0 +_08042820: .4byte 0x0202e8dc + thumb_func_end sub_804272C + + thumb_func_start sub_8042824 +sub_8042824: @ 8042824 + push {r4,lr} + sub sp, 0x6C + movs r0, 0xF + movs r1, 0x6 + movs r2, 0x1D + movs r3, 0xD + bl DrawDefaultWindow + ldr r4, _08042880 + adds r0, r4, 0 + add r1, sp, 0x8 + bl sub_8042630 + add r0, sp, 0x8 + movs r1, 0x10 + movs r2, 0x7 + bl Print + adds r0, r4, 0 + add r1, sp, 0x8 + bl sub_80426B0 + add r0, sp, 0x8 + movs r1, 0xCE + movs r2, 0x38 + movs r3, 0x1 + bl sub_80729D8 + movs r0, 0 + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x10 + movs r2, 0x7 + movs r3, 0x3 + bl InitMenu + ldr r0, _08042884 + movs r1, 0x3 + bl CreateTask + add sp, 0x6C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08042880: .4byte 0x020286d0 +_08042884: .4byte sub_804272C + thumb_func_end sub_8042824 + + thumb_func_start sub_8042888 +sub_8042888: @ 8042888 + push {lr} + movs r0, 0x6 + movs r1, 0 + bl sub_806AFAC + ldr r1, _0804289C + ldr r0, _080428A0 + str r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_0804289C: .4byte 0x03001770 +_080428A0: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_8042888 + + thumb_func_start sub_80428A4 +sub_80428A4: @ 80428A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x48 + adds r6, r0, 0 + adds r5, r1, 0 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + movs r4, 0 + add r7, sp, 0x18 + mov r0, sp + adds r0, 0x31 + str r0, [sp, 0x38] + mov r1, sp + adds r1, 0x32 + str r1, [sp, 0x3C] + add r0, sp, 0x30 + mov r9, r0 + adds r1, 0x1 + str r1, [sp, 0x40] + mov r0, sp + adds r0, 0x34 + str r0, [sp, 0x44] +_080428DE: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r6, 0 + bl PokemonGetField + lsls r1, r4, 1 + add r1, sp + adds r1, 0x10 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080428DE + adds r0, r6, 0 + movs r1, 0 + bl PokemonGetField + mov r8, r0 + movs r4, 0 +_08042906: + adds r1, r4, 0 + adds r1, 0x27 + adds r0, r6, 0 + bl PokemonGetField + lsls r1, r4, 2 + adds r1, r7, r1 + str r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08042906 + adds r0, r6, 0 + movs r1, 0x25 + bl PokemonGetField + ldr r1, [sp, 0x38] + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x8 + bl PokemonGetField + ldr r1, [sp, 0x3C] + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x22 + bl PokemonGetField + str r0, [sp, 0x34] + movs r0, 0x1 + str r0, [sp] + mov r0, r8 + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r5, 0 + mov r1, r10 + movs r2, 0x5 + movs r3, 0x20 + bl create_pokemon_set_level + movs r4, 0 +_0804295E: + adds r1, r4, 0 + adds r1, 0xD + lsls r0, r4, 1 + mov r2, sp + adds r2, r0 + adds r2, 0x10 + adds r0, r5, 0 + bl pokemon_setattr + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _0804295E + movs r4, 0 +_0804297C: + adds r1, r4, 0 + adds r1, 0x27 + lsls r2, r4, 2 + adds r2, r7, r2 + adds r0, r5, 0 + bl pokemon_setattr + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0804297C + movs r0, 0x2 + mov r1, r9 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x3 + mov r2, r9 + bl pokemon_setattr + adds r0, r5, 0 + movs r1, 0x25 + ldr r2, [sp, 0x38] + bl pokemon_setattr + adds r0, r5, 0 + movs r1, 0x8 + ldr r2, [sp, 0x3C] + bl pokemon_setattr + movs r0, 0x78 + ldr r1, [sp, 0x40] + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x20 + ldr r2, [sp, 0x40] + bl pokemon_setattr + adds r0, r5, 0 + movs r1, 0x22 + ldr r2, [sp, 0x44] + bl pokemon_setattr + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + add sp, 0x48 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80428A4 + + thumb_func_start sub_80429EC +sub_80429EC: @ 80429EC + push {r4-r6,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + adds r5, r0, 0 + muls r5, r1 + ldr r0, _08042A9C + adds r5, r0 + ldr r1, _08042AA0 + adds r0, r5, 0 + bl sub_80428A4 + add r2, sp, 0xC + movs r6, 0 + strb r6, [r2] + adds r0, r5, 0 + movs r1, 0x2D + bl pokemon_setattr + adds r0, r5, 0 + movs r1, 0xB + bl PokemonGetField + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, sp + adds r1, r4, 0 + bl GetSpeciesName + adds r0, r5, 0 + movs r1, 0x2 + mov r2, sp + bl pokemon_setattr + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8090D90 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8090D90 + ldr r1, _08042AA4 + adds r0, r5, 0 + bl pokemon_get_nick + mov r2, sp + adds r2, 0xE + movs r0, 0x4 + strh r0, [r2] + adds r0, r5, 0 + movs r1, 0x26 + bl pokemon_setattr + add r2, sp, 0x10 + strh r6, [r2] + adds r0, r5, 0 + movs r1, 0x24 + bl pokemon_setattr + bl sav1_map_get_name + mov r2, sp + adds r2, 0x12 + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0x23 + bl pokemon_setattr + adds r0, r5, 0 + bl sub_8040B1C + adds r0, r5, 0 + bl pokemon_calc_effective_stats + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042A9C: .4byte 0x03004360 +_08042AA0: .4byte 0x030045c0 +_08042AA4: .4byte 0x020231cc + thumb_func_end sub_80429EC + + thumb_func_start sub_8042AA8 +sub_8042AA8: @ 8042AA8 + push {lr} + ldr r0, _08042AB8 + ldrb r0, [r0] + bl sub_80429EC + pop {r0} + bx r0 + .align 2, 0 +_08042AB8: .4byte 0x0202e8cc + thumb_func_end sub_8042AA8 + + thumb_func_start sub_8042ABC +sub_8042ABC: @ 8042ABC + push {r4-r6,lr} + sub sp, 0x20 + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r5, r0 + mov r1, sp + bl pokemon_get_nick_ + lsls r0, r4, 3 + subs r0, r4 + lsls r1, r0, 3 + adds r0, r5, r1 + adds r0, 0xC0 + ldrh r0, [r0] + cmp r0, 0 + beq _08042B40 + adds r0, r1, 0 + adds r0, 0xA0 + adds r5, r0 + adds r6, r5, 0 + adds r6, 0x2C + mov r0, sp + adds r1, r6, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _08042B08 + ldr r0, _08042B30 + adds r1, r5, 0 + adds r1, 0x24 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _08042B40 +_08042B08: + ldr r0, _08042B34 + mov r1, sp + bl StringCopy + ldr r4, _08042B38 + adds r1, r5, 0 + adds r1, 0x24 + adds r0, r4, 0 + bl StringCopy + ldr r0, _08042B3C + adds r1, r6, 0 + bl StringCopy + adds r0, r4, 0 + bl sub_814A568 + movs r0, 0x1 + b _08042B42 + .align 2, 0 +_08042B30: .4byte 0x02024ea4 +_08042B34: .4byte 0x020231cc +_08042B38: .4byte 0x020232cc +_08042B3C: .4byte 0x020233cc +_08042B40: + movs r0, 0 +_08042B42: + add sp, 0x20 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8042ABC + + thumb_func_start sub_8042B4C +sub_8042B4C: @ 8042B4C + push {lr} + ldr r0, _08042B60 + ldr r1, _08042B64 + ldrb r1, [r1] + bl sub_8042ABC + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08042B60: .4byte 0x020286d0 +_08042B64: .4byte 0x0202e8cc + thumb_func_end sub_8042B4C + + thumb_func_start sub_8042B68 +sub_8042B68: @ 8042B68 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r1, r2, 24 + adds r2, r1, 0 + movs r5, 0 + mov r9, r5 + movs r7, 0 + cmp r3, 0 + bne _08042B96 + movs r0, 0x64 + muls r1, r0 + ldr r0, _08042BB0 + adds r7, r1, r0 + movs r5, 0x1 +_08042B96: + cmp r3, 0x1 + bne _08042BA6 + movs r0, 0x64 + adds r1, r2, 0 + muls r1, r0 + ldr r0, _08042BB0 + adds r7, r1, r0 + movs r5, 0x3 +_08042BA6: + cmp r6, 0 + beq _08042BB4 + cmp r6, 0x1 + beq _08042C14 + b _08042C50 + .align 2, 0 +_08042BB0: .4byte 0x03004360 +_08042BB4: + adds r0, r7, 0 + movs r1, 0xB + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r7, 0 + movs r1, 0 + bl PokemonGetField + mov r8, r0 + lsls r0, r5, 3 + ldr r1, _08042C04 + adds r0, r1 + ldr r1, _08042C08 + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + ldr r3, _08042C0C + ldr r6, _08042C10 + lsls r4, 1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r6 + ldr r4, [r4] + str r4, [sp] + str r5, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_800D334 + adds r0, r7, 0 + bl sub_8040990 + bl LoadCompressedObjectPalette + b _08042C50 + .align 2, 0 +_08042C04: .4byte gMonFrontPicTable +_08042C08: .4byte gMonFrontPicCoords +_08042C0C: .4byte 0x02000000 +_08042C10: .4byte gUnknown_081FAF4C +_08042C14: + adds r0, r7, 0 + bl sub_8040990 + ldrh r0, [r0, 0x4] + adds r1, r5, 0 + bl gpu_pal_obj_decompress_and_apply + ldr r0, _08042C60 + movs r1, 0x78 + movs r2, 0x46 + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r4, _08042C64 + lsls r1, r0, 4 + add r1, r9 + lsls r1, 2 + adds r2, r1, r4 + adds r2, 0x3E + ldrb r0, [r2] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r2] + adds r4, 0x1C + adds r1, r4 + ldr r0, _08042C68 + str r0, [r1] +_08042C50: + mov r0, r9 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08042C60: .4byte 0x02024e8c +_08042C64: .4byte 0x02020004 +_08042C68: .4byte SpriteCallbackDummy + thumb_func_end sub_8042B68 + + thumb_func_start sub_8042C6C +sub_8042C6C: @ 8042C6C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8042C6C + + thumb_func_start sub_8042C80 +sub_8042C80: @ 8042C80 + push {lr} + sub sp, 0x4 + bl script_env_2_enable + ldr r0, _08042CA8 + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08042CA8: .4byte sub_8042CAC + thumb_func_end sub_8042C80 + + thumb_func_start sub_8042CAC +sub_8042CAC: @ 8042CAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08042CD8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08042CD0 + ldr r0, _08042CDC + bl SetMainCallback2 + ldr r1, _08042CE0 + ldr r0, _08042CE4 + str r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_08042CD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08042CD8: .4byte 0x0202f388 +_08042CDC: .4byte sub_8042CE8 +_08042CE0: .4byte 0x0300485c +_08042CE4: .4byte sub_8080990 + thumb_func_end sub_8042CAC + + thumb_func_start sub_8042CE8 +sub_8042CE8: @ 8042CE8 + push {r4-r7,lr} + ldr r0, _08042D04 + ldr r1, _08042D08 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bls _08042CF8 + b _08042F6E +_08042CF8: + lsls r0, 2 + ldr r1, _08042D0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08042D04: .4byte 0x03001770 +_08042D08: .4byte 0x0000043c +_08042D0C: .4byte _08042D10 + .align 2, 0 +_08042D10: + .4byte _08042D34 + .4byte _08042D90 + .4byte _08042DC4 + .4byte _08042E20 + .4byte _08042E40 + .4byte _08042E74 + .4byte _08042E88 + .4byte _08042EB0 + .4byte _08042F40 +_08042D34: + movs r0, 0x80 + lsls r0, 19 + movs r2, 0 + strh r2, [r0] + ldr r1, _08042D74 + ldr r0, _08042D78 + str r0, [r1] + ldr r1, _08042D7C + ldrh r1, [r1] + strb r1, [r0, 0x4] + adds r0, 0x3A + strb r2, [r0] + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _08042D80 + bl SetVBlankCallback + ldr r1, _08042D84 + ldr r2, _08042D88 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl current_map_music_get + ldr r1, _08042D8C + strh r0, [r1] + b _08042F6E + .align 2, 0 +_08042D74: .4byte 0x0300481c +_08042D78: .4byte 0x02018000 +_08042D7C: .4byte 0x0202e8cc +_08042D80: .4byte sub_8042C6C +_08042D84: .4byte 0x03001770 +_08042D88: .4byte 0x0000043c +_08042D8C: .4byte 0x0202e8ce +_08042D90: + ldr r5, _08042DBC + adds r0, r5, 0 + bl SetUpWindowConfig + ldr r4, _08042DC0 + ldr r0, [r4] + adds r0, 0x8 + adds r1, r5, 0 + bl InitWindowFromConfig + movs r0, 0x14 + bl sub_8064EF4 + ldr r1, [r4] + adds r1, 0x38 + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x8 + bl sub_8064F08 + b _08042F04 + .align 2, 0 +_08042DBC: .4byte gWindowConfig_81E6F84 +_08042DC0: .4byte 0x0300481c +_08042DC4: + ldr r0, _08042DFC + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _08042E00 + ldr r4, _08042E04 + movs r2, 0x80 + lsls r2, 4 + adds r1, r4, 0 + bl CpuSet + ldr r1, _08042E08 + str r4, [r1] + ldr r0, _08042E0C + str r0, [r1, 0x4] + ldr r0, _08042E10 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r0, _08042E14 + movs r1, 0 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, _08042E18 + ldr r2, _08042E1C + adds r1, r2 + b _08042F0A + .align 2, 0 +_08042DFC: .4byte gUnknown_08D00000 +_08042E00: .4byte gUnknown_08D00524 +_08042E04: .4byte 0x02000000 +_08042E08: .4byte 0x040000d4 +_08042E0C: .4byte 0x06002800 +_08042E10: .4byte 0x80000280 +_08042E14: .4byte gUnknown_08D004E0 +_08042E18: .4byte 0x03001770 +_08042E1C: .4byte 0x0000043c +_08042E20: + ldr r0, _08042E34 + bl LoadSpriteSheet + ldr r0, _08042E38 + bl LoadSpriteSheet + ldr r0, _08042E3C + bl LoadSpritePalette + b _08042F04 + .align 2, 0 +_08042E34: .4byte gUnknown_0820A3B0 +_08042E38: .4byte gUnknown_0820A3B8 +_08042E3C: .4byte gUnknown_0820A3C0 +_08042E40: + ldr r0, _08042E64 + movs r1, 0x78 + movs r2, 0x4B + movs r3, 0x5 + bl CreateSprite + ldr r2, _08042E68 + ldr r1, [r2] + strb r0, [r1] + ldr r0, [r2] + ldrb r0, [r0, 0x4] + bl sub_80429EC + ldr r1, _08042E6C + ldr r2, _08042E70 + adds r1, r2 + b _08042F0A + .align 2, 0 +_08042E64: .4byte gSpriteTemplate_820A3C8 +_08042E68: .4byte 0x0300481c +_08042E6C: .4byte 0x03001770 +_08042E70: .4byte 0x0000043c +_08042E74: + ldr r0, _08042E84 + ldr r0, [r0] + ldrb r2, [r0, 0x4] + movs r0, 0 + movs r1, 0 + bl sub_8042B68 + b _08042F04 + .align 2, 0 +_08042E84: .4byte 0x0300481c +_08042E88: + ldr r4, _08042EA4 + ldr r0, [r4] + ldrb r2, [r0, 0x4] + movs r0, 0 + movs r1, 0x1 + bl sub_8042B68 + ldr r1, [r4] + strb r0, [r1, 0x1] + ldr r1, _08042EA8 + ldr r2, _08042EAC + adds r1, r2 + b _08042F0A + .align 2, 0 +_08042EA4: .4byte 0x0300481c +_08042EA8: .4byte 0x03001770 +_08042EAC: .4byte 0x0000043c +_08042EB0: + ldr r0, _08042F14 + ldr r2, _08042F18 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _08042F1C + movs r1, 0x10 + movs r2, 0xA0 + bl LoadPalette + ldr r3, _08042F20 + ldr r4, _08042F24 + movs r5, 0x98 + lsls r5, 5 + ldr r1, _08042F28 + ldr r6, _08042F2C + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_08042ED6: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _08042ED6 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _08042F30 + ldr r2, _08042F34 + ldr r0, _08042F28 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08042F2C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] +_08042F04: + ldr r1, _08042F38 + ldr r0, _08042F3C + adds r1, r0 +_08042F0A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08042F6E + .align 2, 0 +_08042F14: .4byte 0x0400000c +_08042F18: .4byte 0x00004c06 +_08042F1C: .4byte gUnknown_0820C9F8 +_08042F20: .4byte gUnknown_0820CA98 +_08042F24: .4byte 0x06004000 +_08042F28: .4byte 0x040000d4 +_08042F2C: .4byte 0x80000800 +_08042F30: .4byte gUnknown_0820F798 +_08042F34: .4byte 0x06006000 +_08042F38: .4byte 0x03001770 +_08042F3C: .4byte 0x0000043c +_08042F40: + ldr r1, _08042F74 + ldr r2, _08042F78 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08042F7C + movs r4, 0 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r0, _08042F80 + bl SetMainCallback2 + ldr r0, _08042F84 + ldr r0, [r0] + strb r4, [r0, 0x2] +_08042F6E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042F74: .4byte 0x0400000a +_08042F78: .4byte 0x00000501 +_08042F7C: .4byte 0x04000010 +_08042F80: .4byte sub_804300C +_08042F84: .4byte 0x0300481c + thumb_func_end sub_8042CE8 + + thumb_func_start sub_8042F88 +sub_8042F88: @ 8042F88 + push {lr} + ldr r0, _08042FA8 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08042FAC + adds r0, r1 + ldr r2, _08042FB0 + movs r1, 0x2 + bl pokemon_setattr + ldr r0, _08042FB4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08042FA8: .4byte 0x0202e8cc +_08042FAC: .4byte 0x03004360 +_08042FB0: .4byte 0x020233cc +_08042FB4: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_8042F88 + + thumb_func_start c3_080472E4 +c3_080472E4: @ 8042FB8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08043004 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08042FD4 + bl sub_8074D08 +_08042FD4: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08042FE4 + movs r0, 0xBC + lsls r0, 1 + bl sub_8075474 +_08042FE4: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x3C + ble _08042FF8 + ldr r0, _08043008 + bl sub_8075474 + adds r0, r5, 0 + bl DestroyTask +_08042FF8: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043004: .4byte 0x03004b20 +_08043008: .4byte 0x00000179 + thumb_func_end c3_080472E4 + + thumb_func_start sub_804300C +sub_804300C: @ 804300C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r1, _08043030 + ldr r0, [r1] + ldrb r0, [r0, 0x2] + adds r5, r1, 0 + cmp r0, 0xB + bls _08043026 + b _080432BA +_08043026: + lsls r0, 2 + ldr r1, _08043034 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08043030: .4byte 0x0300481c +_08043034: .4byte _08043038 + .align 2, 0 +_08043038: + .4byte _08043068 + .4byte _080430A0 + .4byte _080430C0 + .4byte _080430F8 + .4byte _08043124 + .4byte _08043164 + .4byte _08043172 + .4byte _08043180 + .4byte _080431B8 + .4byte _080431DA + .4byte _08043288 + .4byte _080432A8 +_08043068: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08043098 + ldr r1, [r0] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + ldr r0, _0804309C + movs r1, 0x5 + bl CreateTask + b _080432BA + .align 2, 0 +_08043098: .4byte 0x0300481c +_0804309C: .4byte c3_080472E4 +_080430A0: + ldr r0, _080430BC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080430B2 + b _080432BA +_080430B2: + ldr r0, [r5] + strb r1, [r0, 0x3] + ldr r1, [r5] + b _0804329C + .align 2, 0 +_080430BC: .4byte 0x0202f388 +_080430C0: + ldr r1, [r5] + ldrb r0, [r1, 0x3] + adds r0, 0x1 + strb r0, [r1, 0x3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bhi _080430D2 + b _080432BA +_080430D2: + ldr r1, [r5] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + ldr r2, _080430F0 + ldr r0, [r5] + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080430F4 + str r1, [r0] + b _080432BA + .align 2, 0 +_080430F0: .4byte 0x02020004 +_080430F4: .4byte sub_80432E4 +_080430F8: + ldr r2, _0804311C + ldr r3, [r5] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08043120 + cmp r1, r0 + beq _08043112 + b _080432BA +_08043112: + ldrb r0, [r3, 0x2] + adds r0, 0x1 + strb r0, [r3, 0x2] + b _080432BA + .align 2, 0 +_0804311C: .4byte 0x02020004 +_08043120: .4byte SpriteCallbackDummy +_08043124: + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08043150 + adds r0, r1 + ldr r1, _08043154 + bl pokemon_get_nick + ldr r4, _08043158 + ldr r1, _0804315C + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + bl sub_80436FC + ldr r0, _08043160 + bl fanfare_play + ldr r1, [r5] + b _0804329C + .align 2, 0 +_08043150: .4byte 0x03004360 +_08043154: .4byte 0x020231cc +_08043158: .4byte 0x020234cc +_0804315C: .4byte gUnknown_0842CC38 +_08043160: .4byte 0x00000173 +_08043164: + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + bne _08043170 + b _080432BA +_08043170: + b _08043298 +_08043172: + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + bne _0804317E + b _080432BA +_0804317E: + b _08043298 +_08043180: + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080431A8 + adds r0, r1 + ldr r1, _080431AC + bl pokemon_get_nick + ldr r4, _080431B0 + ldr r1, _080431B4 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + bl sub_80436D4 + ldr r1, [r5] + b _0804329C + .align 2, 0 +_080431A8: .4byte 0x03004360 +_080431AC: .4byte 0x020231cc +_080431B0: .4byte 0x020234cc +_080431B4: .4byte gUnknown_0842CC5A +_080431B8: + bl sub_8043724 + lsls r0, 24 + cmp r0, 0 + beq _080432BA + movs r0, 0x16 + movs r1, 0x8 + movs r2, 0x1B + movs r3, 0xD + bl DrawDefaultWindow + movs r0, 0x16 + movs r1, 0x8 + movs r2, 0x4 + bl sub_807292C + b _08043298 +_080431DA: + bl FillWindowPixelBuffer + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + movs r1, 0x2 + negs r1, r1 + cmp r0, r1 + beq _080432BA + lsls r0, r2, 24 + asrs r1, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08043298 + cmp r1, 0x1 + beq _08043298 + ldr r0, _08043278 + mov r9, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + movs r1, 0x64 + mov r8, r1 + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldr r6, _0804327C + adds r0, r6 + ldr r1, _08043280 + mov r10, r1 + bl pokemon_get_nick + mov r2, r9 + ldr r0, [r2] + ldrb r0, [r0, 0x4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r2, r9 + ldr r0, [r2] + ldrb r0, [r0, 0x4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + bl pokemon_get_gender + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r2, r9 + ldr r0, [r2] + ldrb r0, [r0, 0x4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0 + movs r2, 0 + bl PokemonGetField + str r0, [sp] + ldr r0, _08043284 + str r0, [sp, 0x4] + movs r0, 0x3 + mov r1, r10 + adds r2, r5, 0 + adds r3, r4, 0 + bl DoNamingScreen + b _080432BA + .align 2, 0 +_08043278: .4byte 0x0300481c +_0804327C: .4byte 0x03004360 +_08043280: .4byte 0x020233cc +_08043284: .4byte sub_8042F88 +_08043288: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_08043298: + ldr r0, _080432A4 + ldr r1, [r0] +_0804329C: + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + b _080432BA + .align 2, 0 +_080432A4: .4byte 0x0300481c +_080432A8: + ldr r0, _080432DC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080432BA + ldr r0, _080432E0 + bl SetMainCallback2 +_080432BA: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080432DC: .4byte 0x0202f388 +_080432E0: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_804300C + + thumb_func_start sub_80432E4 +sub_80432E4: @ 80432E4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _08043304 + ldr r0, _08043300 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x2E] + b _08043334 + .align 2, 0 +_08043300: .4byte sub_804333C +_08043304: + ldrh r0, [r4, 0x30] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x1 + bl sine + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _08043334 + movs r0, 0x17 + bl audio_play + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + bl sub_80435FC +_08043334: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80432E4 + + thumb_func_start sub_804333C +sub_804333C: @ 804333C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _08043398 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _0804336C + ldr r0, _08043368 + str r0, [r4, 0x1C] + strh r1, [r4, 0x2E] + strh r1, [r4, 0x32] + b _08043398 + .align 2, 0 +_08043368: .4byte sub_80433A0 +_0804336C: + ldrh r0, [r4, 0x30] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x2 + bl sine + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _08043398 + movs r0, 0x17 + bl audio_play + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim +_08043398: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804333C + + thumb_func_start sub_80433A0 +sub_80433A0: @ 80433A0 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + movs r6, 0 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _0804345A + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x26 + ble _08043418 + ldr r0, _08043404 + str r0, [r4, 0x1C] + strh r6, [r4, 0x2E] + ldr r5, _08043408 + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0804340C + adds r0, r1 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + ldr r4, _08043410 + ldr r3, [r5] + ldrb r2, [r3, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r6, [r1, 0x24] + ldrb r2, [r3, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldr r2, _08043414 + lsrs r0, 14 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r1, 0x26] + b _0804345A + .align 2, 0 +_08043404: .4byte sub_8043460 +_08043408: .4byte 0x0300481c +_0804340C: .4byte 0x03004360 +_08043410: .4byte 0x02020004 +_08043414: .4byte gMonFrontPicCoords +_08043418: + ldrh r0, [r4, 0x30] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x2 + bl sine + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _0804344C + movs r0, 0x17 + bl audio_play + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + bl sub_80435FC + bl sub_80435FC +_0804344C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1E + bne _0804345A + movs r0, 0x17 + bl audio_play +_0804345A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80433A0 + + thumb_func_start sub_8043460 +sub_8043460: @ 8043460 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + ble _0804347A + ldr r0, _08043480 + str r0, [r1, 0x1C] + movs r0, 0 + strh r0, [r1, 0x2E] +_0804347A: + pop {r0} + bx r0 + .align 2, 0 +_08043480: .4byte sub_8043484 + thumb_func_end sub_8043460 + + thumb_func_start sub_8043484 +sub_8043484: @ 8043484 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080434A4 + movs r1, 0x1 + negs r1, r1 + ldr r0, _080434F8 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_080434A4: + ldrh r0, [r5, 0x2E] + cmp r0, 0x3 + bhi _080434C0 + movs r4, 0 +_080434AC: + bl sub_80435FC + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080434AC +_080434C0: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + ldr r0, _080434FC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080434EE + movs r0, 0x71 + bl audio_play + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08043500 + str r0, [r5, 0x1C] + strh r4, [r5, 0x2E] +_080434EE: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080434F8: .4byte 0x0000ffff +_080434FC: .4byte 0x0202f388 +_08043500: .4byte sub_8043504 + thumb_func_end sub_8043484 + + thumb_func_start sub_8043504 +sub_8043504: @ 8043504 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08043540 + ldr r4, _08043594 + ldr r3, _08043598 + ldr r0, [r3] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08043540: + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x8 + bne _0804355A + movs r1, 0x1 + negs r1, r1 + ldr r0, _0804359C + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_0804355A: + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x9 + bgt _08043578 + ldr r2, _08043594 + ldr r0, _08043598 + ldr r0, [r0] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] +_08043578: + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x28 + ble _08043586 + ldr r0, _080435A0 + str r0, [r5, 0x1C] +_08043586: + adds r0, r1, 0x1 + strh r0, [r5, 0x2E] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043594: .4byte 0x02020004 +_08043598: .4byte 0x0300481c +_0804359C: .4byte 0x0000ffff +_080435A0: .4byte SpriteCallbackDummy + thumb_func_end sub_8043504 + + thumb_func_start sub_80435A4 +sub_80435A4: @ 80435A4 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x32] + ldrh r3, [r2, 0x38] + adds r0, r1, r3 + strh r0, [r2, 0x38] + movs r4, 0x36 + ldrsh r0, [r2, r4] + cmp r0, 0 + bge _080435C2 + adds r0, 0xFF +_080435C2: + asrs r0, 8 + strh r0, [r2, 0x24] + movs r3, 0x38 + ldrsh r0, [r2, r3] + cmp r0, 0 + bge _080435D0 + adds r0, 0xFF +_080435D0: + asrs r0, 8 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r3, r1, r0 + strh r3, [r2, 0x32] + movs r4, 0x22 + ldrsh r1, [r2, r4] + movs r4, 0x26 + ldrsh r0, [r2, r4] + adds r0, r1, r0 + adds r1, 0x14 + cmp r0, r1 + ble _080435F6 + lsls r0, r3, 16 + cmp r0, 0 + ble _080435F6 + adds r0, r2, 0 + bl DestroySprite +_080435F6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80435A4 + + thumb_func_start sub_80435FC +sub_80435FC: @ 80435FC + push {r4-r6,lr} + sub sp, 0x8 + ldr r3, _0804364C + ldr r0, _08043650 + ldr r4, [r0] + adds r4, 0x3A + ldrb r2, [r4] + lsls r0, r2, 2 + adds r1, r0, r3 + ldrh r6, [r1] + adds r3, 0x2 + adds r0, r3 + ldrh r5, [r0] + adds r2, 0x1 + strb r2, [r4] + bl Random + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsls r6, 16 + asrs r6, 16 + lsls r5, 16 + asrs r5, 16 + movs r0, 0x64 + str r0, [sp] + lsrs r1, 16 + str r1, [sp, 0x4] + movs r0, 0x78 + movs r1, 0x3C + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_8043654 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804364C: .4byte gUnknown_0820A430 +_08043650: .4byte 0x0300481c + thumb_func_end sub_80435FC + + thumb_func_start sub_8043654 +sub_8043654: @ 8043654 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + mov r8, r3 + ldr r0, [sp, 0x1C] + mov r9, r0 + ldr r1, [sp, 0x20] + mov r10, r1 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + mov r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + mov r1, r9 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _080436CC + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x4 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080436D0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r6, [r0, 0x30] + mov r1, r8 + strh r1, [r0, 0x32] + mov r1, r9 + strh r1, [r0, 0x34] + mov r1, r10 + bl StartSpriteAnim + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080436CC: .4byte gSpriteTemplate_820A418 +_080436D0: .4byte 0x02020004 + thumb_func_end sub_8043654 + + thumb_func_start sub_80436D4 +sub_80436D4: @ 80436D4 + push {lr} + sub sp, 0x4 + adds r1, r0, 0 + ldr r0, _080436F8 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x8 + adds r2, 0x38 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x3 + bl sub_8002EB0 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080436F8: .4byte 0x0300481c + thumb_func_end sub_80436D4 + + thumb_func_start sub_80436FC +sub_80436FC: @ 80436FC + push {lr} + sub sp, 0x4 + adds r1, r0, 0 + ldr r0, _08043720 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x8 + adds r2, 0x38 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x3 + bl sub_8003460 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08043720: .4byte 0x0300481c + thumb_func_end sub_80436FC + + thumb_func_start sub_8043724 +sub_8043724: @ 8043724 + push {lr} + ldr r0, _08043738 + ldr r0, [r0] + adds r0, 0x8 + bl sub_80035AC + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08043738: .4byte 0x0300481c + thumb_func_end sub_8043724 + + thumb_func_start sub_804373C +sub_804373C: @ 804373C + movs r0, 0x9 + bx lr + thumb_func_end sub_804373C + + thumb_func_start sub_8043740 +sub_8043740: @ 8043740 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r1, 0 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + movs r3, 0 + movs r2, 0 +_0804375C: + lsls r0, r3, 24 + asrs r0, 24 + mov r3, sp + adds r1, r3, r0 + strb r2, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _0804375C + movs r3, 0x3 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + mov r8, sp +_0804377C: + lsls r0, r5, 16 + asrs r6, r0, 16 + cmp r6, 0 + ble _080437AA + lsls r4, r3, 24 + asrs r4, 24 + mov r1, sp + adds r5, r1, r4 + adds r0, r6, 0 + movs r1, 0xA + bl __modsi3 + strb r0, [r5] + adds r0, r6, 0 + movs r1, 0xA + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + subs r4, 0x1 + lsls r4, 24 + lsrs r3, r4, 24 + b _0804377C +_080437AA: + lsls r1, r3, 24 + asrs r0, r1, 24 + cmp r0, r9 + ble _080437CE + movs r4, 0xFF + movs r3, 0x1 + negs r3, r3 +_080437B8: + asrs r2, r1, 24 + mov r5, sp + adds r1, r5, r2 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + subs r2, 0x1 + lsls r1, r2, 24 + asrs r0, r1, 24 + cmp r0, r3 + bgt _080437B8 +_080437CE: + mov r1, r8 + ldrb r0, [r1, 0x3] + cmp r0, 0xFF + bne _080437DA + movs r0, 0 + strb r0, [r1, 0x3] +_080437DA: + mov r2, r10 + cmp r2, 0 + bne _0804386A + movs r3, 0 + movs r1, 0 + movs r6, 0xFC + lsls r6, 8 + movs r5, 0x1E + mov r12, r5 +_080437EC: + lsls r1, 24 + asrs r2, r1, 24 + mov r0, sp + adds r5, r0, r2 + ldrb r0, [r5] + mov r8, r1 + cmp r0, 0xFF + bne _08043822 + lsls r1, r2, 1 + adds r1, r7 + ldrh r2, [r1] + adds r0, r6, 0 + ands r0, r2 + mov r2, r12 + orrs r0, r2 + strh r0, [r1] + lsls r3, 24 + asrs r1, r3, 23 + adds r1, r7 + adds r1, 0x40 + ldrh r2, [r1] + adds r0, r6, 0 + ands r0, r2 + mov r5, r12 + orrs r0, r5 + strh r0, [r1] + b _08043852 +_08043822: + lsls r2, 1 + adds r2, r7 + ldrh r0, [r2] + adds r1, r6, 0 + ands r1, r0 + ldrb r0, [r5] + adds r0, 0x14 + orrs r1, r0 + strh r1, [r2] + lsls r4, r3, 24 + asrs r3, r4, 24 + lsls r2, r3, 1 + adds r2, r7 + adds r2, 0x40 + ldrh r0, [r2] + adds r1, r6, 0 + ands r1, r0 + mov r5, sp + adds r0, r5, r3 + ldrb r0, [r0] + adds r0, 0x34 + orrs r1, r0 + strh r1, [r2] + adds r3, r4, 0 +_08043852: + movs r0, 0x80 + lsls r0, 17 + add r0, r8 + lsrs r1, r0, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r3, r2 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080437EC + b _080438CE +_0804386A: + movs r3, 0 + movs r4, 0xFC + lsls r4, 8 + movs r6, 0x1E +_08043872: + lsls r1, r3, 24 + asrs r2, r1, 24 + mov r3, sp + adds r5, r3, r2 + ldrb r0, [r5] + adds r3, r1, 0 + cmp r0, 0xFF + bne _0804389E + lsls r1, r2, 1 + adds r1, r7 + ldrh r2, [r1] + adds r0, r4, 0 + ands r0, r2 + orrs r0, r6 + strh r0, [r1] + adds r1, 0x40 + ldrh r2, [r1] + adds r0, r4, 0 + ands r0, r2 + orrs r0, r6 + strh r0, [r1] + b _080438C0 +_0804389E: + lsls r2, 1 + adds r2, r7 + ldrh r0, [r2] + adds r1, r4, 0 + ands r1, r0 + ldrb r0, [r5] + adds r0, 0x14 + orrs r1, r0 + strh r1, [r2] + adds r2, 0x40 + ldrh r0, [r2] + adds r1, r4, 0 + ands r1, r0 + ldrb r0, [r5] + adds r0, 0x34 + orrs r1, r0 + strh r1, [r2] +_080438C0: + movs r5, 0x80 + lsls r5, 17 + adds r0, r3, r5 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _08043872 +_080438CE: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8043740 + + thumb_func_start unref_sub_80438E0 +unref_sub_80438E0: @ 80438E0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + movs r1, 0x1E + strh r1, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + adds r1, r5, 0 + movs r2, 0 + bl sub_8043740 + lsls r4, 16 + asrs r4, 16 + adds r5, 0xA + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_8043740 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end unref_sub_80438E0 + + thumb_func_start battle_make_oam_normal_battle +battle_make_oam_normal_battle: @ 8043914 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r0, 0 + str r0, [sp] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08043A28 + mov r0, r10 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080439AC + ldr r4, _0804399C + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, _080439A0 + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x1] + movs r3, 0x3F + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1, 0x1] + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r2, r4 + ldrb r0, [r2, 0x1] + ands r3, r0 + strb r3, [r2, 0x1] + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x40 + ldr r4, _080439A4 + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080439A8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + b _080439F2 + .align 2, 0 +_0804399C: .4byte gSpriteTemplate_820A4EC +_080439A0: .4byte 0x02020004 +_080439A4: .4byte 0x000003ff +_080439A8: .4byte 0xfffffc00 +_080439AC: + ldr r4, _08043A14 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08043A18 + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r2, r0 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r5, _08043A1C + adds r0, r5, 0 + ands r1, r0 + ldr r0, _08043A20 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + movs r0, 0x2 + str r0, [sp] +_080439F2: + ldr r2, _08043A18 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r2 + strh r7, [r0, 0x6] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r1, r0, r2 + strh r6, [r1, 0x38] + adds r2, 0x1C + adds r0, r2 + ldr r1, _08043A24 + str r1, [r0] + b _08043B50 + .align 2, 0 +_08043A14: .4byte gSpriteTemplate_820A51C +_08043A18: .4byte 0x02020004 +_08043A1C: .4byte 0x000003ff +_08043A20: .4byte 0xfffffc00 +_08043A24: .4byte sub_8043D5C +_08043A28: + mov r0, r10 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08043ACC + mov r0, r10 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r4, _08043AB8 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r10 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, _08043ABC + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x6] + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r3, r2, r4 + strh r6, [r3, 0x38] + ldrh r1, [r3, 0x4] + mov r8, r1 + mov r5, r8 + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r5, _08043AC0 + adds r0, r5, 0 + ands r1, r0 + ldr r0, _08043AC4 + mov r5, r8 + ands r0, r5 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r4, 0x1C + adds r2, r4 + ldr r0, _08043AC8 + str r0, [r2] + movs r0, 0x1 + b _08043B4E + .align 2, 0 +_08043AB8: .4byte gSpriteTemplate_820A4EC +_08043ABC: .4byte 0x02020004 +_08043AC0: .4byte 0x000003ff +_08043AC4: .4byte 0xfffffc00 +_08043AC8: .4byte sub_8043D5C +_08043ACC: + mov r0, r10 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r4, _08043C14 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r10 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, _08043C18 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x6] + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r3, r2, r4 + strh r6, [r3, 0x38] + ldrh r1, [r3, 0x4] + mov r8, r1 + mov r5, r8 + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r5, _08043C1C + adds r0, r5, 0 + ands r1, r0 + ldr r0, _08043C20 + mov r5, r8 + ands r0, r5 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r4, 0x1C + adds r2, r4 + ldr r0, _08043C24 + str r0, [r2] + movs r0, 0x2 +_08043B4E: + str r0, [sp] +_08043B50: + ldr r0, _08043C28 + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r1, _08043C2C + adds r0, r1 + movs r1, 0x8C + movs r2, 0x3C + movs r3, 0 + bl CreateSpriteAtEnd + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r1, _08043C18 + mov r8, r1 + add r4, r8 + mov r0, r10 + bl battle_side_get_owner + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 21 + ldr r0, _08043C30 + adds r1, r0 + adds r0, r4, 0 + bl SetSubspriteTables + adds r2, r4, 0 + adds r2, 0x42 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r2, 0x4 + mov r9, r2 + mov r1, r9 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0x1 + bl sub_8043CDC + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _08043C34 + adds r1, r2 + ldr r2, _08043C38 + bl CpuSet + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + add r0, r8 + strh r5, [r0, 0x38] + mov r2, r10 + strh r2, [r0, 0x3A] + adds r0, 0x3E + ldrb r1, [r0] + mov r5, r9 + orrs r1, r5 + strb r1, [r0] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r8 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + strh r6, [r4, 0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x3A] + adds r4, 0x3E + ldrb r0, [r4] + orrs r0, r5 + strb r0, [r4] + adds r0, r6, 0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08043C14: .4byte gSpriteTemplate_820A51C +_08043C18: .4byte 0x02020004 +_08043C1C: .4byte 0x000003ff +_08043C20: .4byte 0xfffffc00 +_08043C24: .4byte sub_8043D5C +_08043C28: .4byte 0x02024a72 +_08043C2C: .4byte gSpriteTemplate_820A56C +_08043C30: .4byte gUnknown_0820A684 +_08043C34: .4byte 0x06010000 +_08043C38: .4byte 0x04000010 + thumb_func_end battle_make_oam_normal_battle + + thumb_func_start battle_make_oam_safari_battle +battle_make_oam_safari_battle: @ 8043C3C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, _08043CC8 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08043CCC + mov r9, r1 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + add r4, r9 + ldrb r3, [r4, 0x1] + movs r2, 0x3F + adds r1, r2, 0 + ands r1, r3 + strb r1, [r4, 0x1] + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + mov r7, r9 + adds r5, r3, r7 + ldrb r1, [r5, 0x1] + ands r2, r1 + strb r2, [r5, 0x1] + ldrh r1, [r5, 0x4] + mov r8, r1 + mov r7, r8 + lsls r2, r7, 22 + lsrs r2, 22 + adds r2, 0x40 + ldr r7, _08043CD0 + adds r1, r7, 0 + ands r2, r1 + ldr r1, _08043CD4 + mov r7, r8 + ands r1, r7 + orrs r1, r2 + strh r1, [r5, 0x4] + strh r0, [r4, 0x6] + strh r6, [r5, 0x38] + movs r0, 0x1C + add r9, r0 + add r3, r9 + ldr r0, _08043CD8 + str r0, [r3] + adds r0, r6, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08043CC8: .4byte gSpriteTemplate_820A54C +_08043CCC: .4byte 0x02020004 +_08043CD0: .4byte 0x000003ff +_08043CD4: .4byte 0xfffffc00 +_08043CD8: .4byte sub_8043D5C + thumb_func_end battle_make_oam_safari_battle + + thumb_func_start sub_8043CDC +sub_8043CDC: @ 8043CDC + lsls r0, 24 + lsrs r0, 19 + ldr r1, _08043CE8 + adds r0, r1 + bx lr + .align 2, 0 +_08043CE8: .4byte gUnknown_08D1216C + thumb_func_end sub_8043CDC + + thumb_func_start sub_8043CEC +sub_8043CEC: @ 8043CEC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08043D1C + cmp r0, 0x1 + bgt _08043D30 + cmp r0, 0 + bne _08043D30 + ldr r2, _08043D18 + lsls r3, r5, 4 + adds r1, r3, r5 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x20] + adds r0, 0x10 + b _08043D3E + .align 2, 0 +_08043D18: .4byte 0x02020004 +_08043D1C: + ldr r2, _08043D2C + lsls r3, r5, 4 + adds r1, r3, r5 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x20] + adds r0, 0x10 + b _08043D3E + .align 2, 0 +_08043D2C: .4byte 0x02020004 +_08043D30: + ldr r2, _08043D58 + lsls r3, r5, 4 + adds r1, r3, r5 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x20] + adds r0, 0x8 +_08043D3E: + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x22] + strh r0, [r4, 0x22] + adds r0, r3, r5 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + strh r1, [r4, 0x24] + ldrh r0, [r0, 0x26] + strh r0, [r4, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043D58: .4byte 0x02020004 + thumb_func_end sub_8043CEC + + thumb_func_start sub_8043D5C +sub_8043D5C: @ 8043D5C + ldrh r1, [r0, 0x38] + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08043D80 + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x20] + adds r1, 0x40 + strh r1, [r0, 0x20] + ldrh r1, [r2, 0x22] + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x24] + strh r1, [r0, 0x24] + ldrh r1, [r2, 0x26] + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_08043D80: .4byte 0x02020004 + thumb_func_end sub_8043D5C + + thumb_func_start sub_8043D84 +sub_8043D84: @ 8043D84 + push {r4,r5,lr} + ldr r5, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 2 + ldr r0, _08043DA8 + adds r4, r0 + strb r1, [r4] + str r2, [r4, 0x4] + str r3, [r4, 0x8] + str r5, [r4, 0xC] + ldr r0, _08043DAC + str r0, [r4, 0x10] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043DA8: .4byte 0x02017850 +_08043DAC: .4byte 0xffff8000 + thumb_func_end sub_8043D84 + + thumb_func_start sub_8043DB0 +sub_8043DB0: @ 8043DB0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08043DF8 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + movs r0, 0x38 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + ldrh r1, [r2, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08043DF8: .4byte 0x02020004 + thumb_func_end sub_8043DB0 + + thumb_func_start sub_8043DFC +sub_8043DFC: @ 8043DFC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08043E4C + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + adds r4, r2, 0 + adds r4, 0x3E + ldrb r1, [r4] + movs r3, 0x5 + negs r3, r3 + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + movs r0, 0x38 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r4, [r0] + adds r1, r3, 0 + ands r1, r4 + strb r1, [r0] + ldrh r1, [r2, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043E4C: .4byte 0x02020004 + thumb_func_end sub_8043DFC + + thumb_func_start sub_8043E50 +sub_8043E50: @ 8043E50 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08043E6C + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r4 + strh r1, [r3, 0x20] + strh r2, [r3, 0x22] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08043E6C: .4byte 0x02020004 + thumb_func_end sub_8043E50 + + thumb_func_start unref_sub_8043E70 +unref_sub_8043E70: @ 8043E70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08043EAC + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r4, r5 + ldrh r1, [r4, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + adds r0, r4, 0 + bl DestroySprite + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043EAC: .4byte 0x02020004 + thumb_func_end unref_sub_8043E70 + + thumb_func_start nullsub_11 +nullsub_11: @ 8043EB0 + bx lr + thumb_func_end nullsub_11 + + thumb_func_start sub_8043EB4 +sub_8043EB4: @ 8043EB4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + ldr r1, _08043F38 + mov r8, r1 + ldrb r2, [r1] + cmp r6, r2 + bge _08043F2C + ldr r1, _08043F3C + mov r12, r1 + movs r1, 0x3 + ands r0, r1 + lsls r5, r0, 2 + movs r7, 0xD + negs r7, r7 + ldr r2, _08043F40 + mov r9, r2 +_08043EDE: + mov r1, r9 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + ldrb r4, [r1, 0x6] + ldrh r3, [r1, 0x38] + lsls r3, 24 + lsrs r3, 24 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + add r1, r12 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + add r1, r12 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + adds r6, 0x1 + mov r2, r8 + ldrb r2, [r2] + cmp r6, r2 + blt _08043EDE +_08043F2C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08043F38: .4byte 0x02024a68 +_08043F3C: .4byte 0x02020004 +_08043F40: .4byte 0x03004340 + thumb_func_end sub_8043EB4 + + thumb_func_start sub_8043F44 +sub_8043F44: @ 8043F44 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r4, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08043F70 + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08043F6A + movs r5, 0x2C + movs r4, 0x1E + b _08043FA8 +_08043F6A: + movs r5, 0x9E + movs r4, 0x58 + b _08043FA8 +_08043F70: + adds r0, r6, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08043F9E + cmp r0, 0x1 + bgt _08043F88 + cmp r0, 0 + beq _08043F92 + b _08043FA8 +_08043F88: + cmp r0, 0x2 + beq _08043F98 + cmp r0, 0x3 + beq _08043FA4 + b _08043FA8 +_08043F92: + movs r5, 0x9F + movs r4, 0x4D + b _08043FA8 +_08043F98: + movs r5, 0xAB + movs r4, 0x66 + b _08043FA8 +_08043F9E: + movs r5, 0x2C + movs r4, 0x13 + b _08043FA8 +_08043FA4: + movs r5, 0x20 + movs r4, 0x2C +_08043FA8: + ldr r0, _08043FBC + adds r0, r6, r0 + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8043E50 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08043FBC: .4byte 0x03004340 + thumb_func_end sub_8043F44 + + thumb_func_start sub_8043FC0 +sub_8043FC0: @ 8043FC0 + push {r4-r7,lr} + sub sp, 0x20 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _08044000 + mov r0, sp + movs r2, 0x1E + bl memcpy + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08044010 + ldr r1, _08044004 + lsls r4, r5, 4 + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + ldr r7, _08044008 + cmp r0, 0 + bne _0804402E + ldr r7, _0804400C + b _0804402E + .align 2, 0 +_08044000: .4byte gUnknown_0820A81C +_08044004: .4byte 0x02020004 +_08044008: .4byte gUnknown_0820A80C +_0804400C: .4byte gUnknown_0820A804 +_08044010: + ldr r1, _08044040 + lsls r4, r5, 4 + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + ldr r7, _08044044 + cmp r0, 0 + bne _0804402E + ldr r7, _08044048 +_0804402E: + mov r3, sp + adds r3, 0x6 + cmp r6, 0x64 + bne _0804404C + adds r0, r3, 0 + movs r1, 0x64 + movs r2, 0 + movs r3, 0x3 + b _0804408C + .align 2, 0 +_08044040: .4byte 0x02020004 +_08044044: .4byte gUnknown_0820A80C +_08044048: .4byte gUnknown_0820A814 +_0804404C: + movs r1, 0xFC + strb r1, [r3] + mov r3, sp + adds r3, 0x7 + movs r0, 0x11 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + movs r2, 0x14 + strb r2, [r3] + adds r3, 0x1 + movs r0, 0x4 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xF0 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + strb r2, [r3] + adds r3, 0x1 + movs r0, 0 + strb r0, [r3] + adds r3, 0x1 + adds r0, r3, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x2 +_0804408C: + bl ConvertIntToDecimalStringN + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x13 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xF + strb r0, [r3] + movs r0, 0xFF + strb r0, [r3, 0x1] + movs r0, 0x80 + lsls r0, 18 + mov r1, sp + bl sub_80034D4 + ldr r1, _080440E0 + adds r0, r4, r5 + lsls r0, 2 + adds r6, r0, r1 + ldr r5, _080440E4 + movs r4, 0x2 +_080440BC: + ldrh r0, [r6, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldm r7!, {r1} + adds r1, r0 + adds r0, r5, 0 + ldr r2, _080440E8 + bl CpuSet + adds r5, 0x40 + subs r4, 0x1 + cmp r4, 0 + bne _080440BC + add sp, 0x20 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080440E0: .4byte 0x02020004 +_080440E4: .4byte 0x02000020 +_080440E8: .4byte 0x04000008 + thumb_func_end sub_8043FC0 + + thumb_func_start sub_80440EC +sub_80440EC: @ 80440EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldr r1, _08044144 + mov r0, sp + movs r2, 0x14 + bl memcpy + ldr r1, _08044148 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x3A + ldrsh r5, [r4, r0] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08044136 + lsls r0, r5, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0804414C +_08044136: + lsls r1, r6, 16 + asrs r1, 16 + adds r0, r7, 0 + mov r2, r8 + bl sub_8044210 + b _080441F0 + .align 2, 0 +_08044144: .4byte gUnknown_0820A864 +_08044148: .4byte 0x02020004 +_0804414C: + mov r5, sp + adds r5, 0x6 + mov r0, r8 + cmp r0, 0 + bne _08044190 + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + ldr r4, _08044188 + cmp r0, 0 + bne _0804416A + ldr r4, _0804418C +_0804416A: + movs r0, 0x3 + mov r8, r0 + lsls r1, r6, 16 + asrs r1, 16 + adds r0, r5, 0 + movs r2, 0x13 + movs r3, 0x1 + bl sub_8003504 + adds r5, r0, 0 + movs r0, 0xBA + strb r0, [r5] + movs r0, 0xFF + strb r0, [r5, 0x1] + b _080441B6 + .align 2, 0 +_08044188: .4byte gUnknown_0820A848 +_0804418C: .4byte gUnknown_0820A83C +_08044190: + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + ldr r4, _080441FC + cmp r0, 0 + bne _080441A4 + ldr r4, _08044200 +_080441A4: + movs r0, 0x2 + mov r8, r0 + lsls r1, r6, 16 + asrs r1, 16 + adds r0, r5, 0 + movs r2, 0xF + movs r3, 0x1 + bl sub_8003504 +_080441B6: + movs r0, 0x80 + lsls r0, 18 + mov r1, sp + bl sub_80034D4 + mov r0, r8 + cmp r0, 0 + beq _080441F0 + ldr r1, _08044204 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r6, r0, r1 + adds r7, r4, 0 + ldr r5, _08044208 + mov r4, r8 +_080441D6: + ldrh r0, [r6, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldm r7!, {r1} + adds r1, r0 + adds r0, r5, 0 + ldr r2, _0804420C + bl CpuSet + adds r5, 0x40 + subs r4, 0x1 + cmp r4, 0 + bne _080441D6 +_080441F0: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080441FC: .4byte gUnknown_0820A85C +_08044200: .4byte gUnknown_0820A854 +_08044204: .4byte 0x02020004 +_08044208: .4byte 0x02000020 +_0804420C: .4byte 0x04000008 + thumb_func_end sub_80440EC + + thumb_func_start sub_8044210 +sub_8044210: @ 8044210 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 16 + lsrs r6, r1, 16 + mov r9, r6 + lsls r2, 24 + lsrs r7, r2, 24 + ldr r1, _0804427C + mov r0, sp + movs r2, 0x14 + bl memcpy + ldr r1, _08044280 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + mov r8, r0 + movs r1, 0x3A + ldrsh r4, [r0, r1] + lsls r0, r4, 2 + ldr r1, _08044284 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08044312 + mov r2, sp + adds r2, 0x6 + cmp r7, 0 + bne _0804428C + ldr r7, _08044288 + movs r0, 0x6 + mov r10, r0 + lsls r1, r6, 16 + asrs r1, 16 + adds r0, r2, 0 + movs r2, 0x2B + movs r3, 0x1 + bl sub_8003504 + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + movs r0, 0xFF + strb r0, [r2, 0x1] + b _080442CE + .align 2, 0 +_0804427C: .4byte gUnknown_0820A89C +_08044280: .4byte 0x02020004 +_08044284: .4byte 0x02017800 +_08044288: .4byte gUnknown_0820A87C +_0804428C: + ldr r7, _08044324 + movs r1, 0x2 + mov r10, r1 + mov r0, r9 + lsls r1, r0, 16 + asrs r1, 16 + adds r0, r2, 0 + movs r2, 0xF + movs r3, 0x1 + bl sub_8003504 + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080442CE + movs r0, 0x74 + bl sub_8043CDC + mov r2, r8 + ldrh r1, [r2, 0x4] + lsls r1, 22 + lsrs r1, 17 + movs r2, 0xD0 + lsls r2, 3 + adds r1, r2 + ldr r2, _08044328 + adds r1, r2 + ldr r2, _0804432C + bl CpuSet +_080442CE: + ldr r6, _08044330 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r6 + movs r1, 0x38 + ldrsh r4, [r0, r1] + movs r0, 0x80 + lsls r0, 18 + mov r1, sp + bl sub_80034D4 + mov r2, r10 + cmp r2, 0 + beq _08044312 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r6, r0, r6 + ldr r5, _08044334 + mov r4, r10 +_080442F8: + ldrh r0, [r6, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldm r7!, {r1} + adds r1, r0 + adds r0, r5, 0 + ldr r2, _0804432C + bl CpuSet + adds r5, 0x40 + subs r4, 0x1 + cmp r4, 0 + bne _080442F8 +_08044312: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08044324: .4byte gUnknown_0820A894 +_08044328: .4byte 0x06010000 +_0804432C: .4byte 0x04000008 +_08044330: .4byte 0x02020004 +_08044334: .4byte 0x02000020 + thumb_func_end sub_8044210 + + thumb_func_start sub_8044338 +sub_8044338: @ 8044338 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + ldr r1, _080443CC + mov r0, sp + movs r2, 0x14 + bl memcpy + ldr r1, _080443D0 + ldr r2, [sp, 0x14] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 7 + ldr r3, _080443D4 + adds r6, r1, r3 + movs r0, 0x5 + mov r8, r0 + adds r0, r4, 0 + bl GetNature + lsls r0, 24 + mov r4, sp + adds r4, 0x6 + ldr r1, _080443D8 + lsrs r0, 22 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + adds r0, r6, 0 + mov r1, sp + bl sub_80034D4 + movs r7, 0x6 + movs r5, 0 + mov r1, sp + adds r1, 0x9 + str r1, [sp, 0x1C] +_080443AA: + mov r2, sp + adds r0, r2, r7 + ldrb r1, [r0] + adds r0, r1, 0 + subs r0, 0x37 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _080443C8 + adds r0, r1, 0 + adds r0, 0x79 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _080443DC +_080443C8: + movs r0, 0x2C + b _080443FA + .align 2, 0 +_080443CC: .4byte gUnknown_0820A864 +_080443D0: .4byte 0x02020004 +_080443D4: .4byte 0x02000520 +_080443D8: .4byte gNatureNames +_080443DC: + adds r0, r1, 0 + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080443F4 + adds r0, r1, 0 + adds r0, 0x65 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080443F8 +_080443F4: + movs r0, 0x2D + b _080443FA +_080443F8: + movs r0, 0x2B +_080443FA: + bl sub_8043CDC + lsls r1, r5, 6 + adds r1, r6, r1 + ldr r2, _080444F8 + bl CpuSet + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, 0x1 + cmp r5, r8 + bcc _080443AA + movs r7, 0x1 + ldr r3, [sp, 0x14] + lsls r3, 4 + str r3, [sp, 0x18] + movs r0, 0x1 + add r0, r8 + mov r9, r0 + cmp r7, r9 + bge _08044486 + ldr r1, _080444FC + ldr r2, _080444F8 + mov r10, r2 + ldr r2, [sp, 0x14] + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + mov r8, r0 +_08044436: + mov r3, r8 + ldrh r0, [r3, 0x4] + lsls r0, 22 + lsrs r0, 22 + adds r5, r7, 0 + cmp r7, 0 + bge _08044446 + adds r5, r7, 0x7 +_08044446: + asrs r5, 3 + lsls r4, r5, 3 + subs r4, r7, r4 + adds r0, r4 + lsls r5, 6 + adds r0, r5 + lsls r0, 5 + ldr r2, _08044500 + adds r1, r0, r2 + adds r0, r6, 0 + mov r2, r10 + bl CpuSet + adds r6, 0x20 + mov r3, r8 + ldrh r0, [r3, 0x4] + lsls r0, 22 + lsrs r0, 22 + adds r4, 0x8 + adds r0, r4 + adds r0, r5 + lsls r0, 5 + ldr r2, _08044500 + adds r1, r0, r2 + adds r0, r6, 0 + mov r2, r10 + bl CpuSet + adds r6, 0x20 + adds r7, 0x1 + cmp r7, r9 + blt _08044436 +_08044486: + ldr r6, _080444FC + ldr r3, [sp, 0x18] + ldr r1, [sp, 0x14] + adds r0, r3, r1 + lsls r0, 2 + adds r0, r6 + ldrh r5, [r0, 0x38] + lsls r5, 24 + lsrs r5, 24 + ldr r4, _08044504 + ldr r2, _08044508 + adds r0, r4, r2 + ldrb r1, [r0] + mov r0, sp + adds r0, 0x6 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r3, _0804450C + adds r4, r3 + ldrb r1, [r4] + ldr r0, [sp, 0x1C] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r1, sp + movs r0, 0 + strb r0, [r1, 0x5] + movs r0, 0xBA + strb r0, [r1, 0x8] + movs r0, 0x80 + lsls r0, 18 + bl sub_80034D4 + movs r7, 0 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r5, r0, r6 + ldr r4, _08044510 +_080444DA: + cmp r7, 0x1 + bgt _08044514 + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r0, r7, 0x2 + adds r1, r0 + lsls r1, 5 + ldr r0, _08044500 + adds r1, r0 + adds r0, r4, 0 + ldr r2, _080444F8 + bl CpuSet + b _0804452A + .align 2, 0 +_080444F8: .4byte 0x04000008 +_080444FC: .4byte 0x02020004 +_08044500: .4byte 0x06010000 +_08044504: .4byte 0x02000000 +_08044508: .4byte 0x00016089 +_0804450C: .4byte 0x00016088 +_08044510: .4byte 0x02000020 +_08044514: + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r7, r1 + lsls r1, 5 + ldr r2, _08044544 + adds r1, r2 + adds r0, r4, 0 + ldr r2, _08044548 + bl CpuSet +_0804452A: + adds r4, 0x40 + adds r7, 0x1 + cmp r7, 0x4 + ble _080444DA + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08044544: .4byte 0x060100c0 +_08044548: .4byte 0x04000008 + thumb_func_end sub_8044338 + + thumb_func_start sub_804454C +sub_804454C: @ 804454C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + ldr r0, _0804466C + ldrb r0, [r0] + cmp r8, r0 + blt _08044566 + b _080447E4 +_08044566: + ldr r1, _08044670 + mov r9, r1 + movs r2, 0x64 + mov r10, r2 + ldr r7, _08044674 +_08044570: + ldr r0, _08044678 + mov r6, r8 + adds r5, r6, r0 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r1, r9 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _0804467C + cmp r1, r0 + beq _0804458E + b _080447D4 +_0804458E: + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080445A2 + b _080447D4 +_080445A2: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _080445BA + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080445BA + b _080447D4 +_080445BA: + mov r0, r8 + lsls r3, r0, 2 + ldr r0, _08044680 + adds r3, r0 + ldr r0, [r3] + lsls r0, 27 + lsrs r0, 31 + movs r2, 0x1 + eors r2, r0 + lsls r2, 4 + ldrb r0, [r3] + movs r6, 0x11 + negs r6, r6 + adds r1, r6, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldr r0, [r3] + lsls r0, 27 + lsrs r6, r0, 31 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080446DC + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _080445FA + b _080447D4 +_080445FA: + ldr r0, _08044684 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _0804460C + b _080447D4 +_0804460C: + cmp r6, 0x1 + bne _08044694 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrh r0, [r0, 0x38] + lsls r0, 24 + lsrs r1, r0, 24 + str r2, [sp] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r0, _08044688 + adds r1, r0 + mov r0, sp + ldr r2, _0804468C + bl CpuSet + ldrb r4, [r5] + ldrh r0, [r7] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + ldr r2, _08044690 + adds r0, r2 + movs r1, 0x39 + bl PokemonGetField + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + bl sub_8044210 + ldrb r4, [r5] + ldrh r0, [r7] + mov r6, r10 + muls r6, r0 + adds r0, r6, 0 + ldr r1, _08044690 + b _08044766 + .align 2, 0 +_0804466C: .4byte 0x02024a68 +_08044670: .4byte 0x02020004 +_08044674: .4byte 0x02024a6a +_08044678: .4byte 0x03004340 +_0804467C: .4byte SpriteCallbackDummy +_08044680: .4byte 0x02017800 +_08044684: .4byte 0x020239f8 +_08044688: .4byte 0x06010000 +_0804468C: .4byte 0x05000040 +_08044690: .4byte 0x03004360 +_08044694: + ldrb r0, [r5] + bl draw_status_ailment_maybe + ldrb r0, [r5] + ldrh r1, [r7] + mov r2, r10 + muls r2, r1 + adds r1, r2, 0 + ldr r6, _080446D0 + adds r1, r6 + movs r2, 0x5 + bl sub_8045A5C + movs r0, 0x75 + bl sub_8043CDC + ldrb r2, [r5] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r9 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _080446D4 + adds r1, r2 + ldr r2, _080446D8 + bl CpuSet + b _080447BE + .align 2, 0 +_080446D0: .4byte 0x03004360 +_080446D4: .4byte 0x06010680 +_080446D8: .4byte 0x04000008 +_080446DC: + cmp r6, 0x1 + bne _0804478C + ldr r0, _08044704 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _0804470C + ldrb r0, [r5] + ldrh r1, [r7] + mov r6, r10 + muls r6, r1 + adds r1, r6, 0 + ldr r2, _08044708 + adds r1, r2 + bl sub_8044338 + b _080447BE + .align 2, 0 +_08044704: .4byte 0x020239f8 +_08044708: .4byte 0x030045c0 +_0804470C: + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrh r0, [r0, 0x38] + lsls r0, 24 + lsrs r1, r0, 24 + str r2, [sp] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r6, _08044780 + adds r1, r6 + mov r0, sp + ldr r2, _08044784 + bl CpuSet + ldrb r4, [r5] + ldrh r0, [r7] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + ldr r2, _08044788 + adds r0, r2 + movs r1, 0x39 + bl PokemonGetField + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + bl sub_8044210 + ldrb r4, [r5] + ldrh r0, [r7] + mov r6, r10 + muls r6, r0 + adds r0, r6, 0 + ldr r1, _08044788 +_08044766: + adds r0, r1 + movs r1, 0x3A + bl PokemonGetField + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_8044210 + b _080447BE + .align 2, 0 +_08044780: .4byte 0x06010000 +_08044784: .4byte 0x05000040 +_08044788: .4byte 0x030045c0 +_0804478C: + ldrb r0, [r5] + bl draw_status_ailment_maybe + ldrb r0, [r5] + ldrh r1, [r7] + movs r6, 0x64 + muls r1, r6 + ldr r4, _080447F4 + adds r1, r4 + movs r2, 0x5 + bl sub_8045A5C + ldr r0, _080447F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080447BE + ldrb r0, [r5] + ldrh r1, [r7] + muls r1, r6 + adds r1, r4 + movs r2, 0x4 + bl sub_8045A5C +_080447BE: + ldr r0, _080447FC + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrh r1, [r0, 0x3C] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0, 0x3C] +_080447D4: + adds r7, 0x2 + movs r2, 0x1 + add r8, r2 + ldr r0, _08044800 + ldrb r0, [r0] + cmp r8, r0 + bge _080447E4 + b _08044570 +_080447E4: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080447F4: .4byte 0x030045c0 +_080447F8: .4byte 0x020239f8 +_080447FC: .4byte 0x03004340 +_08044800: .4byte 0x02024a68 + thumb_func_end sub_804454C + + thumb_func_start sub_8044804 +sub_8044804: @ 8044804 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + str r1, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + lsls r2, 24 + lsrs r2, 24 + adds r4, r2, 0 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + cmp r4, 0 + beq _08044834 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08044878 +_08044834: + ldr r0, [sp, 0x8] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08044854 + movs r7, 0 + movs r1, 0x88 + movs r2, 0x60 + movs r0, 0x64 + mov r8, r0 + ldr r5, _08044850 + b _08044884 + .align 2, 0 +_08044850: .4byte 0x0000fffb +_08044854: + movs r7, 0x1 + cmp r4, 0 + beq _08044864 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _0804486A +_08044864: + movs r1, 0x68 + movs r2, 0x28 + b _0804486E +_0804486A: + movs r1, 0x68 + movs r2, 0x10 +_0804486E: + ldr r3, _08044874 + mov r8, r3 + b _08044882 + .align 2, 0 +_08044874: .4byte 0x0000ff9c +_08044878: + movs r7, 0x1 + movs r1, 0x68 + movs r2, 0x28 + ldr r5, _08044930 + mov r8, r5 +_08044882: + movs r5, 0x5 +_08044884: + movs r6, 0 + str r6, [sp, 0x14] + lsls r4, r7, 3 + ldr r0, _08044934 + mov r10, r0 + lsls r3, r7, 1 + mov r9, r3 + lsls r1, 16 + str r1, [sp, 0x20] + lsls r2, 16 + str r2, [sp, 0x24] + ldr r2, _08044938 + ldr r1, [sp, 0xC] + movs r6, 0x5 +_080448A0: + ldrh r0, [r1] + cmp r0, r2 + beq _080448B4 + ldr r3, [sp, 0x14] + lsls r0, r3, 24 + movs r3, 0x80 + lsls r3, 17 + adds r0, r3 + lsrs r0, 24 + str r0, [sp, 0x14] +_080448B4: + adds r1, 0x8 + subs r6, 0x1 + cmp r6, 0 + bge _080448A0 + mov r6, r10 + adds r0, r4, r6 + bl LoadCompressedObjectPic + ldr r0, _0804493C + adds r0, r4, r0 + bl LoadSpriteSheet + ldr r0, _08044940 + adds r0, r4, r0 + bl LoadSpritePalette + ldr r0, _08044944 + adds r0, r4, r0 + bl LoadSpritePalette + mov r1, r9 + adds r0, r1, r7 + lsls r0, 3 + ldr r1, _08044948 + adds r0, r1 + ldr r2, [sp, 0x20] + asrs r1, r2, 16 + ldr r3, [sp, 0x24] + asrs r2, r3, 16 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + lsls r0, 4 + ldr r6, [sp, 0x18] + adds r0, r6 + lsls r0, 2 + ldr r1, _0804494C + adds r4, r0, r1 + ldr r1, _08044950 + adds r0, r4, 0 + bl SetSubspriteTables + mov r0, r8 + strh r0, [r4, 0x24] + strh r5, [r4, 0x2E] + cmp r7, 0 + beq _08044954 + ldrh r0, [r4, 0x20] + subs r0, 0x60 + strh r0, [r4, 0x20] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4, 0x3] + b _0804495A + .align 2, 0 +_08044930: .4byte 0x0000ff9c +_08044934: .4byte gUnknown_0820A754 +_08044938: .4byte 0x0000ffff +_0804493C: .4byte gUnknown_0820A784 +_08044940: .4byte gUnknown_0820A764 +_08044944: .4byte gUnknown_0820A774 +_08044948: .4byte gSpriteTemplate_820A7A4 +_0804494C: .4byte 0x02020004 +_08044950: .4byte gUnknown_0820A6E4 +_08044954: + ldrh r0, [r4, 0x20] + adds r0, 0x60 + strh r0, [r4, 0x20] +_0804495A: + movs r6, 0 + ldr r1, _08044A04 + mov r10, r1 + mov r4, sp + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + str r0, [sp, 0x1C] + movs r3, 0xA + mov r9, r3 + mov r8, r6 +_08044970: + ldr r0, _08044A08 + ldr r5, [sp, 0x24] + ldr r1, _08044A0C + adds r2, r5, r1 + ldr r3, [sp, 0x1C] + adds r0, r3, r0 + ldr r5, [sp, 0x20] + asrs r1, r5, 16 + asrs r2, 16 + movs r3, 0x9 + bl CreateSpriteAtEnd + strb r0, [r4] + ldr r0, [sp, 0x10] + cmp r0, 0 + bne _080449A0 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r2, _08044A10 + adds r1, r2 + ldr r0, _08044A14 + str r0, [r1] +_080449A0: + ldr r5, _08044A04 + cmp r7, 0 + bne _080449BE + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + strh r7, [r0, 0x24] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + strh r7, [r0, 0x26] +_080449BE: + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0 + mov r3, sp + ldrh r3, [r3, 0x18] + strh r3, [r0, 0x2E] + cmp r7, 0 + bne _08044A18 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r1, 0x20] + adds r0, 0x18 + add r0, r8 + strh r0, [r1, 0x20] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r9 + strh r1, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x78 + b _08044A56 + .align 2, 0 +_08044A04: .4byte 0x02020004 +_08044A08: .4byte gSpriteTemplate_820A7D4 +_08044A0C: .4byte 0xfffc0000 +_08044A10: .4byte 0x02020020 +_08044A14: .4byte sub_8045180 +_08044A18: + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldrh r3, [r2, 0x20] + subs r3, 0x18 + movs r1, 0x5 + subs r1, r6 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + subs r3, r0 + strh r3, [r2, 0x20] + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + movs r1, 0x6 + subs r1, r6 + lsls r0, r1, 3 + subs r0, r1 + adds r0, 0xA + strh r0, [r2, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08044AC4 +_08044A56: + strh r1, [r0, 0x24] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r7, [r0, 0x32] + adds r4, 0x1 + movs r2, 0x7 + add r9, r2 + movs r3, 0xA + add r8, r3 + adds r6, 0x1 + cmp r6, 0x5 + bgt _08044A76 + b _08044970 +_08044A76: + ldr r0, [sp, 0x8] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08044B5E + movs r6, 0 + ldr r5, _08044AC8 + mov r10, r5 + ldr r0, _08044ACC + mov r9, r0 + ldr r7, _08044AD0 + ldr r1, _08044AD4 + mov r12, r1 + ldr r2, _08044AD8 + mov r8, r2 + mov r4, sp + ldr r5, [sp, 0xC] +_08044A9A: + mov r3, r10 + ldrh r1, [r3] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08044ADC + ldrh r0, [r5] + cmp r0, r9 + beq _08044AE6 + cmp r0, 0 + bne _08044B2E + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08044B46 + .align 2, 0 +_08044AC4: .4byte 0x0000ff88 +_08044AC8: .4byte 0x020239f8 +_08044ACC: .4byte 0x0000ffff +_08044AD0: .4byte 0x02020004 +_08044AD4: .4byte 0x000003ff +_08044AD8: .4byte 0xfffffc00 +_08044ADC: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + asrs r0, 24 + cmp r6, r0 + blt _08044B14 +_08044AE6: + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x1 + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0x1 + strh r1, [r0, 0x3C] + b _08044B52 +_08044B14: + ldrh r0, [r5] + cmp r0, 0 + bne _08044B2E + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08044B46 +_08044B2E: + ldr r0, [r5, 0x4] + cmp r0, 0 + beq _08044B52 + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x2 +_08044B46: + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] +_08044B52: + adds r4, 0x1 + adds r5, 0x8 + adds r6, 0x1 + cmp r6, 0x5 + ble _08044A9A + b _08044C38 +_08044B5E: + movs r6, 0 + ldr r1, _08044BA4 + mov r10, r1 + ldr r2, _08044BA8 + mov r9, r2 + ldr r7, _08044BAC + ldr r3, _08044BB0 + mov r12, r3 + ldr r5, _08044BB4 + mov r8, r5 + ldr r5, [sp, 0xC] + mov r4, sp + adds r4, 0x5 +_08044B78: + mov r0, r10 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08044BB8 + ldrh r0, [r5] + cmp r0, r9 + beq _08044BC2 + cmp r0, 0 + bne _08044C0A + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08044C22 + .align 2, 0 +_08044BA4: .4byte 0x020239f8 +_08044BA8: .4byte 0x0000ffff +_08044BAC: .4byte 0x02020004 +_08044BB0: .4byte 0x000003ff +_08044BB4: .4byte 0xfffffc00 +_08044BB8: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + asrs r0, 24 + cmp r6, r0 + blt _08044BF0 +_08044BC2: + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x1 + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0x1 + strh r1, [r0, 0x3C] + b _08044C2E +_08044BF0: + ldrh r0, [r5] + cmp r0, 0 + bne _08044C0A + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08044C22 +_08044C0A: + ldr r0, [r5, 0x4] + cmp r0, 0 + beq _08044C2E + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x2 +_08044C22: + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] +_08044C2E: + subs r4, 0x1 + adds r5, 0x8 + adds r6, 0x1 + cmp r6, 0x5 + ble _08044B78 +_08044C38: + ldr r0, _08044C98 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _08044C9C + lsls r3, r4, 2 + adds r1, r3, r4 + lsls r1, 3 + adds r0, r1, r2 + mov r5, sp + ldrh r5, [r5, 0x8] + strh r5, [r0, 0x8] + mov r6, sp + ldrh r6, [r6, 0x18] + strh r6, [r0, 0xA] + movs r6, 0 + adds r0, r2, 0 + adds r0, 0xE + adds r1, r0 +_08044C62: + mov r5, sp + adds r0, r5, r6 + ldrb r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _08044C62 + adds r0, r3, r4 + lsls r0, 3 + adds r0, r2 + ldrh r6, [r5, 0x10] + strh r6, [r0, 0x1C] + movs r0, 0x72 + movs r1, 0 + bl audio_play_and_stuff + adds r0, r4, 0 + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08044C98: .4byte TaskDummy +_08044C9C: .4byte 0x03004b20 + thumb_func_end sub_8044804 + + thumb_func_start sub_8044CA0 +sub_8044CA0: @ 8044CA0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _08044DB4 + lsls r3, r0, 2 + adds r1, r3, r0 + lsls r1, 3 + adds r0, r1, r2 + ldrb r4, [r0, 0x1C] + mov r9, r4 + ldrb r4, [r0, 0xA] + mov r10, r4 + ldrb r0, [r0, 0x8] + str r0, [sp, 0x8] + movs r5, 0 + adds r7, r2, 0 + ldr r0, _08044DB8 + mov r12, r0 + str r3, [sp, 0xC] + adds r0, r7, 0 + adds r0, 0xE + adds r2, r1, r0 +_08044CD8: + mov r4, sp + adds r1, r4, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x5 + ble _08044CD8 + ldr r1, _08044DBC + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] + ldr r0, [sp, 0xC] + add r0, r8 + lsls r0, 3 + adds r0, r7 + movs r1, 0x10 + strh r1, [r0, 0x26] + movs r5, 0 + mov r4, r10 + lsls r4, 4 + str r4, [sp, 0x10] + ldr r4, _08044DB8 + movs r6, 0xD + negs r6, r6 + movs r3, 0x4 +_08044D14: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x1] + adds r0, r6, 0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x1] + adds r5, 0x1 + cmp r5, 0x5 + ble _08044D14 + ldr r2, [sp, 0x10] + add r2, r10 + lsls r2, 2 + add r2, r12 + ldrb r1, [r2, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x1] + mov r2, r9 + cmp r2, 0 + bne _08044D50 + b _08044E54 +_08044D50: + movs r5, 0 + mov r6, r12 + mov r9, r5 + adds r3, r6, 0 + adds r3, 0x1C + mov r4, sp + movs r7, 0 +_08044D5E: + ldr r0, [sp, 0x8] + str r3, [sp, 0x14] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, [sp, 0x14] + cmp r2, 0 + beq _08044DC4 + movs r0, 0x5 + subs r0, r5 + mov r1, sp + adds r2, r1, r0 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r7, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r9 + strh r1, [r0, 0x34] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r9 + strh r1, [r0, 0x36] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _08044DC0 + str r1, [r0] + ldr r2, _08044DB8 + mov r12, r2 + b _08044DFA + .align 2, 0 +_08044DB4: .4byte 0x03004b20 +_08044DB8: .4byte 0x02020004 +_08044DBC: .4byte 0x04000050 +_08044DC0: .4byte sub_8045110 +_08044DC4: + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r7, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x34] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x36] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _08044E3C + str r1, [r0] + ldr r0, _08044E40 + mov r12, r0 +_08044DFA: + adds r4, 0x1 + adds r7, 0x7 + adds r5, 0x1 + cmp r5, 0x5 + ble _08044D5E + ldr r3, [sp, 0x10] + add r3, r10 + lsls r3, 2 + mov r1, r12 + adds r0, r3, r1 + movs r2, 0x2E + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + movs r2, 0 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + mov r1, r12 + adds r1, 0x1C + adds r3, r1 + ldr r1, _08044E44 + str r1, [r3] + ldr r1, _08044E48 + bl SetSubspriteTables + ldr r1, _08044E4C + ldr r0, [sp, 0xC] + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldr r1, _08044E50 + b _08044E5E + .align 2, 0 +_08044E3C: .4byte sub_8045110 +_08044E40: .4byte 0x02020004 +_08044E44: .4byte sub_8045048 +_08044E48: .4byte gUnknown_0820A6EC +_08044E4C: .4byte 0x03004b20 +_08044E50: .4byte sub_8044E74 +_08044E54: + ldr r0, [sp, 0xC] + add r0, r8 + lsls r0, 3 + adds r0, r7 + ldr r1, _08044E70 +_08044E5E: + str r1, [r0] + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08044E70: .4byte sub_8044F70 + thumb_func_end sub_8044CA0 + + thumb_func_start sub_8044E74 +sub_8044E74: @ 8044E74 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08044EC0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0x1E] + adds r1, r0, 0x1 + strh r1, [r3, 0x1E] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08044EAE + ldrh r0, [r3, 0x26] + subs r2, r0, 0x1 + strh r2, [r3, 0x26] + lsls r0, r2, 16 + cmp r0, 0 + blt _08044EBA + ldr r1, _08044EC4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1] +_08044EAE: + movs r1, 0x26 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08044EBA + ldr r0, _08044EC8 + str r0, [r3] +_08044EBA: + pop {r0} + bx r0 + .align 2, 0 +_08044EC0: .4byte 0x03004b20 +_08044EC4: .4byte 0x04000052 +_08044EC8: .4byte sub_8044ECC + thumb_func_end sub_8044E74 + + thumb_func_start sub_8044ECC +sub_8044ECC: @ 8044ECC + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r6, _08044F44 + lsls r0, r3, 2 + adds r0, r3 + lsls r4, r0, 3 + adds r1, r4, r6 + ldrh r0, [r1, 0x26] + subs r0, 0x1 + movs r5, 0 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r2, r0, 16 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + bne _08044F4C + ldrb r3, [r1, 0xA] + adds r0, r6, 0 + adds r0, 0xE + adds r2, r4, r0 +_08044EFA: + mov r0, sp + adds r1, r0, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x5 + ble _08044EFA + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r4, _08044F48 + adds r0, r4 + bl DestroySpriteAndFreeResources + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySpriteAndFreeResources + movs r5, 0x1 +_08044F2A: + mov r1, sp + adds r0, r1, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r5, 0x1 + cmp r5, 0x5 + ble _08044F2A + b _08044F62 + .align 2, 0 +_08044F44: .4byte 0x03004b20 +_08044F48: .4byte 0x02020004 +_08044F4C: + movs r0, 0x3 + negs r0, r0 + cmp r2, r0 + bne _08044F62 + ldr r0, _08044F6C + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, r3, 0 + bl DestroyTask +_08044F62: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08044F6C: .4byte 0x04000050 + thumb_func_end sub_8044ECC + + thumb_func_start sub_8044F70 +sub_8044F70: @ 8044F70 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r7, _08044FA4 + lsls r0, r4, 2 + adds r0, r4 + lsls r6, r0, 3 + adds r3, r6, r7 + ldrh r0, [r3, 0x26] + subs r2, r0, 0x1 + movs r5, 0 + strh r2, [r3, 0x26] + lsls r0, r2, 16 + asrs r1, r0, 16 + cmp r1, 0 + blt _08044FAC + ldr r1, _08044FA8 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1] + b _08045022 + .align 2, 0 +_08044FA4: .4byte 0x03004b20 +_08044FA8: .4byte 0x04000052 +_08044FAC: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0804500C + ldrb r3, [r3, 0xA] + movs r5, 0 + adds r0, r7, 0 + adds r0, 0xE + adds r2, r6, r0 +_08044FBE: + mov r0, sp + adds r1, r0, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x5 + ble _08044FBE + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r4, _08045008 + adds r0, r4 + bl DestroySpriteAndFreeResources + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySpriteAndFreeResources + movs r5, 0x1 +_08044FEE: + mov r1, sp + adds r0, r1, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r5, 0x1 + cmp r5, 0x5 + ble _08044FEE + b _08045022 + .align 2, 0 +_08045008: .4byte 0x02020004 +_0804500C: + movs r0, 0x3 + negs r0, r0 + cmp r1, r0 + bne _08045022 + ldr r0, _0804502C + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, r4, 0 + bl DestroyTask +_08045022: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804502C: .4byte 0x04000050 + thumb_func_end sub_8044F70 + + thumb_func_start sub_8045030 +sub_8045030: @ 8045030 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x24] + movs r3, 0x24 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08045044 + ldrh r0, [r1, 0x2E] + adds r0, r2, r0 + strh r0, [r1, 0x24] +_08045044: + pop {r0} + bx r0 + thumb_func_end sub_8045030 + + thumb_func_start sub_8045048 +sub_8045048: @ 8045048 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0 + adds r1, 0x20 + strh r1, [r2, 0x30] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _08045066 + lsls r0, r1, 16 + asrs r0, 20 + ldrh r1, [r2, 0x24] + adds r0, r1 + b _0804506E +_08045066: + lsls r1, 16 + asrs r1, 20 + ldrh r0, [r2, 0x24] + subs r0, r1 +_0804506E: + strh r0, [r2, 0x24] + ldrh r1, [r2, 0x30] + movs r0, 0xF + ands r0, r1 + strh r0, [r2, 0x30] + pop {r0} + bx r0 + thumb_func_end sub_8045048 + + thumb_func_start sub_804507C +sub_804507C: @ 804507C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _08045090 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + b _08045106 +_08045090: + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r3, r0, 24 + ldrh r2, [r4, 0x34] + adds r0, r2, 0 + adds r0, 0x38 + lsls r1, r0, 16 + lsrs r2, r1, 16 + ldr r0, _080450C0 + ands r2, r0 + strh r2, [r4, 0x34] + cmp r3, 0 + beq _080450C4 + lsrs r0, r1, 20 + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080450D4 + movs r0, 0 + strh r0, [r4, 0x24] + b _080450D4 + .align 2, 0 +_080450C0: .4byte 0x0000fff0 +_080450C4: + lsrs r1, 20 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bge _080450D4 + strh r3, [r4, 0x24] +_080450D4: + movs r2, 0x24 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _08045106 + movs r1, 0x3F + cmp r3, 0 + beq _080450E4 + movs r1, 0xC0 +_080450E4: + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080450F8 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x74 + bl sub_807552C + b _08045102 +_080450F8: + lsls r1, 24 + asrs r1, 24 + movs r0, 0x73 + bl sub_80754F8 +_08045102: + ldr r0, _0804510C + str r0, [r4, 0x1C] +_08045106: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804510C: .4byte SpriteCallbackDummy + thumb_func_end sub_804507C + + thumb_func_start sub_8045110 +sub_8045110: @ 8045110 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _08045124 + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + b _08045174 +_08045124: + ldrh r0, [r3, 0x32] + lsls r0, 24 + ldrh r2, [r3, 0x34] + adds r1, r2, 0 + adds r1, 0x38 + lsls r4, r1, 16 + lsrs r2, r4, 16 + ldr r1, _08045144 + ands r2, r1 + strh r2, [r3, 0x34] + cmp r0, 0 + beq _08045148 + lsrs r0, r4, 20 + ldrh r1, [r3, 0x24] + adds r0, r1 + b _0804514E + .align 2, 0 +_08045144: .4byte 0x0000fff0 +_08045148: + lsrs r1, r4, 20 + ldrh r0, [r3, 0x24] + subs r0, r1 +_0804514E: + strh r0, [r3, 0x24] + movs r2, 0x24 + ldrsh r0, [r3, r2] + movs r2, 0x20 + ldrsh r1, [r3, r2] + adds r0, r1 + adds r0, 0x8 + movs r1, 0x80 + lsls r1, 1 + cmp r0, r1 + bls _08045174 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0804517C + str r0, [r3, 0x1C] +_08045174: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804517C: .4byte SpriteCallbackDummy + thumb_func_end sub_8045110 + + thumb_func_start sub_8045180 +sub_8045180: @ 8045180 + ldrh r2, [r0, 0x2E] + lsls r2, 24 + lsrs r2, 24 + ldr r3, _0804519C + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x24] + strh r2, [r0, 0x24] + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_0804519C: .4byte 0x02020004 + thumb_func_end sub_8045180 + + thumb_func_start sub_80451A0 +sub_80451A0: @ 80451A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r7, r1, 0 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r4, _08045238 + ldr r1, _0804523C + adds r0, r4, 0 + bl StringCopy + adds r0, r7, 0 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + mov r0, sp + bl StringGetEnd10 + adds r4, 0x3 + adds r0, r4, 0 + mov r1, sp + bl StringCopy + adds r5, r0, 0 + movs r1, 0xFC + strb r1, [r5] + movs r0, 0x3 + strb r0, [r5, 0x1] + movs r0, 0x2 + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x1 + strb r0, [r5, 0x4] + adds r5, 0x5 + adds r0, r7, 0 + bl pokemon_get_gender + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0 + movs r1, 0xB + bl PokemonGetField + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r7, 0 + movs r1, 0x3 + bl PokemonGetField + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + mov r1, sp + bl sub_8040D3C + cmp r0, 0 + beq _08045222 + movs r6, 0x64 +_08045222: + cmp r6, 0 + beq _08045240 + cmp r6, 0xFE + beq _08045248 + movs r0, 0xB + strb r0, [r5] + movs r0, 0xFF + strb r0, [r5, 0x1] + adds r5, 0x1 + b _08045256 + .align 2, 0 +_08045238: .4byte 0x020238cc +_0804523C: .4byte gUnknown_0820A8B0 +_08045240: + movs r0, 0xB + strb r0, [r5] + movs r0, 0xB5 + b _0804524E +_08045248: + movs r0, 0xA + strb r0, [r5] + movs r0, 0xB6 +_0804524E: + strb r0, [r5, 0x1] + movs r0, 0xFF + strb r0, [r5, 0x2] + adds r5, 0x2 +_08045256: + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x37 + strb r0, [r5, 0x2] + movs r0, 0xFF + strb r0, [r5, 0x3] + ldr r1, _080452D8 + mov r0, r9 + lsls r4, r0, 4 + adds r0, r4, r0 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 7 + ldr r2, _080452DC + adds r5, r1, r2 + ldr r0, _080452E0 + mov r8, r0 + adds r0, r5, 0 + mov r1, r8 + bl sub_80034D4 + movs r6, 0 + movs r1, 0x7 + mov r10, r1 + adds r0, r7, 0 + movs r1, 0x3 + bl PokemonGetField + str r4, [sp, 0xC] + cmp r0, 0x1 + bne _08045338 + adds r0, r7, 0 + movs r1, 0x2D + bl PokemonGetField + cmp r0, 0 + bne _08045338 + mov r4, r8 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + beq _08045338 + adds r7, r5, 0 +_080452C2: + cmp r1, 0xFC + bne _080452E4 + ldrb r0, [r4, 0x1] + bl GetExtCtrlCodeLength + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + adds r4, r0 + b _08045330 + .align 2, 0 +_080452D8: .4byte 0x02020004 +_080452DC: .4byte 0x02000520 +_080452E0: .4byte 0x020238cc +_080452E4: + adds r0, r1, 0 + subs r0, 0x37 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _080452FC + adds r0, r1, 0 + adds r0, 0x79 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _08045300 +_080452FC: + movs r0, 0x2C + b _0804531E +_08045300: + adds r0, r1, 0 + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _08045318 + adds r0, r1, 0 + adds r0, 0x65 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _0804531C +_08045318: + movs r0, 0x2D + b _0804531E +_0804531C: + movs r0, 0x2B +_0804531E: + bl sub_8043CDC + adds r1, r7, 0 + ldr r2, _080453C8 + bl CpuSet + adds r7, 0x40 + adds r6, 0x1 + adds r4, 0x1 +_08045330: + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _080452C2 +_08045338: + cmp r6, r10 + bge _0804535A + lsls r0, r6, 6 + adds r4, r0, r5 + mov r2, r10 + subs r6, r2, r6 +_08045344: + movs r0, 0x2B + bl sub_8043CDC + adds r1, r4, 0 + ldr r2, _080453C8 + bl CpuSet + adds r4, 0x40 + subs r6, 0x1 + cmp r6, 0 + bne _08045344 +_0804535A: + ldr r1, _080453CC + ldr r0, [sp, 0xC] + add r0, r9 + lsls r0, 2 + adds r6, r0, r1 + ldrh r0, [r6, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080453D4 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _080453D4 + ldr r1, _080453D0 + mov r0, r10 + cmp r0, 0 + beq _08045438 + mov r8, r6 + mov r9, r1 + ldr r7, _080453C8 + mov r6, r10 +_0804538E: + mov r1, r9 + adds r1, 0x4 + mov r9, r1 + subs r1, 0x4 + ldm r1!, {r4} + mov r2, r8 + ldrh r0, [r2, 0x4] + lsls r0, 22 + lsrs r0, 17 + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r7, 0 + bl CpuSet + adds r5, 0x20 + movs r0, 0x80 + lsls r0, 1 + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r7, 0 + bl CpuSet + adds r5, 0x20 + subs r6, 0x1 + cmp r6, 0 + bne _0804538E + b _08045438 + .align 2, 0 +_080453C8: .4byte 0x04000008 +_080453CC: .4byte 0x02020004 +_080453D0: .4byte gUnknown_0820A8B4 +_080453D4: + ldr r1, _08045448 + ldr r0, [sp, 0xC] + add r0, r9 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _0804544C + cmp r0, 0 + bne _080453F2 + ldr r1, _08045450 +_080453F2: + mov r2, r10 + cmp r2, 0 + beq _08045438 + mov r8, r4 + mov r9, r1 + ldr r7, _08045454 + mov r6, r10 +_08045400: + mov r0, r9 + adds r0, 0x4 + mov r9, r0 + subs r0, 0x4 + ldm r0!, {r4} + mov r1, r8 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 17 + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r7, 0 + bl CpuSet + adds r5, 0x20 + movs r2, 0x80 + lsls r2, 1 + adds r4, r2 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r7, 0 + bl CpuSet + adds r5, 0x20 + subs r6, 0x1 + cmp r6, 0 + bne _08045400 +_08045438: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045448: .4byte 0x02020004 +_0804544C: .4byte gUnknown_0820A8DC +_08045450: .4byte gUnknown_0820A904 +_08045454: .4byte 0x04000008 + thumb_func_end sub_80451A0 + + thumb_func_start sub_8045458 +sub_8045458: @ 8045458 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _080454F4 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _0804552E + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0804552E + ldr r6, _080454F8 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r6 + ldrh r0, [r5, 0x3A] + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0804552E + ldr r1, _080454FC + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08045500 + adds r0, r1 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _0804552E + ldrh r0, [r5, 0x38] + lsls r0, 24 + lsrs r4, r0, 24 + cmp r7, 0 + beq _0804550C + movs r0, 0x46 + bl sub_8043CDC + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r6 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2 + ldr r2, _08045504 + adds r1, r2 + ldr r2, _08045508 + bl CpuSet + b _0804552E + .align 2, 0 +_080454F4: .4byte 0x020239f8 +_080454F8: .4byte 0x02020004 +_080454FC: .4byte 0x02024a6a +_08045500: .4byte 0x030045c0 +_08045504: .4byte 0x06010000 +_08045508: .4byte 0x04000008 +_0804550C: + str r7, [sp] + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 17 + movs r0, 0x80 + lsls r0, 1 + adds r1, r0 + ldr r0, _08045538 + adds r1, r0 + ldr r2, _0804553C + mov r0, sp + bl CpuSet +_0804552E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045538: .4byte 0x06010000 +_0804553C: .4byte 0x05000008 + thumb_func_end sub_8045458 + + thumb_func_start draw_status_ailment_maybe +draw_status_ailment_maybe: @ 8045540 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080455A4 + mov r2, r9 + lsls r1, r2, 4 + add r1, r9 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x3A] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r1, 0x38] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + adds r0, r7, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080455B0 + ldr r1, _080455A8 + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080455AC + adds r0, r1 + movs r1, 0x37 + bl PokemonGetField + adds r4, r0, 0 + bl battle_type_is_double + lsls r0, 24 + movs r3, 0x12 + mov r8, r3 + cmp r0, 0 + bne _080455CC + movs r0, 0x1A + mov r8, r0 + b _080455CC + .align 2, 0 +_080455A4: .4byte 0x02020004 +_080455A8: .4byte 0x02024a6a +_080455AC: .4byte 0x03004360 +_080455B0: + ldr r1, _080455EC + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080455F0 + adds r0, r1 + movs r1, 0x37 + bl PokemonGetField + adds r4, r0, 0 + movs r1, 0x11 + mov r8, r1 +_080455CC: + movs r0, 0x7 + ands r0, r4 + cmp r0, 0 + beq _080455F4 + movs r0, 0x1B + adds r1, r7, 0 + bl sub_80457E8 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043CDC + adds r6, r0, 0 + movs r0, 0x2 + b _080456FC + .align 2, 0 +_080455EC: .4byte 0x02024a6a +_080455F0: .4byte 0x030045c0 +_080455F4: + movs r0, 0x88 + ands r0, r4 + cmp r0, 0 + beq _08045612 + movs r0, 0x15 + adds r1, r7, 0 + bl sub_80457E8 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043CDC + adds r6, r0, 0 + movs r0, 0 + b _080456FC +_08045612: + movs r0, 0x10 + ands r0, r4 + cmp r0, 0 + beq _08045630 + movs r0, 0x21 + adds r1, r7, 0 + bl sub_80457E8 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043CDC + adds r6, r0, 0 + movs r0, 0x4 + b _080456FC +_08045630: + movs r0, 0x20 + ands r0, r4 + cmp r0, 0 + beq _0804564E + movs r0, 0x1E + adds r1, r7, 0 + bl sub_80457E8 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043CDC + adds r6, r0, 0 + movs r0, 0x3 + b _080456FC +_0804564E: + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + beq _0804566C + movs r0, 0x18 + adds r1, r7, 0 + bl sub_80457E8 + lsls r0, 24 + lsrs r0, 24 + bl sub_8043CDC + adds r6, r0, 0 + movs r0, 0x1 + b _080456FC +_0804566C: + movs r0, 0x27 + bl sub_8043CDC + adds r6, r0, 0 + movs r4, 0 + mov r2, r9 + lsls r0, r2, 4 + mov r3, r8 + lsls r3, 16 + mov r8, r3 + lsls r7, 2 + ldr r1, _080456E8 + add r0, r9 + lsls r0, 2 + adds r5, r0, r1 +_0804568A: + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + mov r2, r8 + asrs r0, r2, 16 + adds r1, r0 + adds r1, r4 + lsls r1, 5 + ldr r3, _080456EC + adds r1, r3 + adds r0, r6, 0 + ldr r2, _080456F0 + bl CpuSet + adds r4, 0x1 + cmp r4, 0x2 + ble _0804568A + ldr r0, _080456F4 + adds r0, r7, r0 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080456DC + movs r0, 0x1 + bl sub_8043CDC + ldr r2, _080456E8 + mov r3, r10 + lsls r1, r3, 4 + add r1, r10 + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _080456EC + adds r1, r2 + ldr r2, _080456F8 + bl CpuSet +_080456DC: + mov r0, r9 + movs r1, 0x1 + bl sub_8045458 + b _080457BA + .align 2, 0 +_080456E8: .4byte 0x02020004 +_080456EC: .4byte 0x06010000 +_080456F0: .4byte 0x04000008 +_080456F4: .4byte 0x02017800 +_080456F8: .4byte 0x04000010 +_080456FC: + mov r1, r9 + lsls r5, r1, 4 + add r5, r9 + lsls r5, 2 + ldr r2, _080457C8 + adds r5, r2 + ldrb r4, [r5, 0x5] + lsrs r4, 4 + lsls r4, 4 + adds r4, 0xC + adds r4, r7 + lsls r0, 1 + ldr r1, _080457CC + adds r0, r1 + ldrh r0, [r0] + movs r3, 0x80 + lsls r3, 1 + adds r1, r4, r3 + movs r2, 0x2 + bl FillPalette + lsls r4, 1 + ldr r0, _080457D0 + adds r0, r4, r0 + ldr r1, _080457D4 + adds r4, r1 + adds r1, r4, 0 + movs r2, 0x1 + bl CpuSet + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + add r1, r8 + lsls r1, 5 + ldr r2, _080457D8 + mov r8, r2 + add r1, r8 + ldr r2, _080457DC + adds r0, r6, 0 + bl CpuSet + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0804576A + adds r0, r7, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080457B2 +_0804576A: + lsls r0, r7, 2 + ldr r1, _080457E0 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080457B2 + movs r0, 0 + bl sub_8043CDC + mov r3, r10 + lsls r4, r3, 4 + add r4, r10 + lsls r4, 2 + ldr r1, _080457C8 + adds r4, r1 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + add r1, r8 + ldr r5, _080457E4 + adds r2, r5, 0 + bl CpuSet + movs r0, 0x41 + bl sub_8043CDC + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + adds r1, 0x20 + add r1, r8 + adds r2, r5, 0 + bl CpuSet +_080457B2: + mov r0, r9 + movs r1, 0 + bl sub_8045458 +_080457BA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080457C8: .4byte 0x02020004 +_080457CC: .4byte gUnknown_08E903F8 +_080457D0: .4byte 0x0202ecc8 +_080457D4: .4byte 0x05000200 +_080457D8: .4byte 0x06010000 +_080457DC: .4byte 0x04000018 +_080457E0: .4byte 0x02017800 +_080457E4: .4byte 0x04000008 + thumb_func_end draw_status_ailment_maybe + + thumb_func_start sub_80457E8 +sub_80457E8: @ 80457E8 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsrs r2, r0, 24 + adds r0, r2, 0 + subs r0, 0x15 + cmp r0, 0xC + bhi _080458A8 + lsls r0, 2 + ldr r1, _08045804 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08045804: .4byte _08045808 + .align 2, 0 +_08045808: + .4byte _0804583C + .4byte _080458A8 + .4byte _080458A8 + .4byte _08045852 + .4byte _080458A8 + .4byte _080458A8 + .4byte _08045868 + .4byte _080458A8 + .4byte _080458A8 + .4byte _0804587E + .4byte _080458A8 + .4byte _080458A8 + .4byte _08045894 +_0804583C: + movs r2, 0x15 + cmp r3, 0 + beq _080458A8 + movs r2, 0x47 + cmp r3, 0x1 + beq _080458A8 + movs r2, 0x65 + cmp r3, 0x2 + bne _080458A8 + movs r2, 0x56 + b _080458A8 +_08045852: + movs r2, 0x18 + cmp r3, 0 + beq _080458A8 + movs r2, 0x4A + cmp r3, 0x1 + beq _080458A8 + movs r2, 0x68 + cmp r3, 0x2 + bne _080458A8 + movs r2, 0x59 + b _080458A8 +_08045868: + movs r2, 0x1B + cmp r3, 0 + beq _080458A8 + movs r2, 0x4D + cmp r3, 0x1 + beq _080458A8 + movs r2, 0x6B + cmp r3, 0x2 + bne _080458A8 + movs r2, 0x5C + b _080458A8 +_0804587E: + movs r2, 0x1E + cmp r3, 0 + beq _080458A8 + movs r2, 0x50 + cmp r3, 0x1 + beq _080458A8 + movs r2, 0x6E + cmp r3, 0x2 + bne _080458A8 + movs r2, 0x5F + b _080458A8 +_08045894: + movs r2, 0x21 + cmp r3, 0 + beq _080458A8 + movs r2, 0x53 + cmp r3, 0x1 + beq _080458A8 + movs r2, 0x71 + cmp r3, 0x2 + bne _080458A8 + movs r2, 0x62 +_080458A8: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80457E8 + + thumb_func_start sub_80458B0 +sub_80458B0: @ 80458B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08045984 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 7 + ldr r0, _08045988 + adds r6, r1, r0 + movs r1, 0x7 + mov r8, r1 + ldr r1, _0804598C + adds r0, r6, 0 + bl sub_80034D4 + movs r4, 0 +_080458EE: + movs r0, 0x2B + bl sub_8043CDC + lsls r1, r4, 6 + adds r1, r6, r1 + ldr r2, _08045990 + bl CpuSet + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r8 + bcc _080458EE + movs r7, 0x3 + movs r2, 0x3 + add r2, r8 + mov r9, r2 + cmp r7, r9 + bge _08045974 + ldr r1, _08045984 + ldr r0, _08045990 + mov r10, r0 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + mov r8, r0 +_08045924: + mov r1, r8 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 22 + adds r5, r7, 0 + cmp r7, 0 + bge _08045934 + adds r5, r7, 0x7 +_08045934: + asrs r5, 3 + lsls r4, r5, 3 + subs r4, r7, r4 + adds r0, r4 + lsls r5, 6 + adds r0, r5 + lsls r0, 5 + ldr r2, _08045994 + adds r1, r0, r2 + adds r0, r6, 0 + mov r2, r10 + bl CpuSet + adds r6, 0x20 + mov r1, r8 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 22 + adds r4, 0x8 + adds r0, r4 + adds r0, r5 + lsls r0, 5 + ldr r2, _08045994 + adds r1, r0, r2 + adds r0, r6, 0 + mov r2, r10 + bl CpuSet + adds r6, 0x20 + adds r7, 0x1 + cmp r7, r9 + blt _08045924 +_08045974: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045984: .4byte 0x02020004 +_08045988: .4byte 0x02000520 +_0804598C: .4byte gUnknown_08400DD6 +_08045990: .4byte 0x04000008 +_08045994: .4byte 0x06010000 + thumb_func_end sub_80458B0 + + thumb_func_start sub_8045998 +sub_8045998: @ 8045998 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08045A38 + mov r8, r0 + ldr r1, _08045A3C + bl StringCopy + adds r7, r0, 0 + ldr r0, _08045A40 + ldrb r1, [r0] + adds r0, r7, 0 + movs r2, 0xA + movs r3, 0x1 + bl sub_8003504 + adds r7, r0, 0 + ldr r1, _08045A44 + bl StringAppend + ldr r0, _08045A48 + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r5, r0 + ldrh r0, [r5, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 7 + ldr r0, _08045A4C + adds r7, r4, r0 + movs r6, 0x5 + adds r0, r7, 0 + mov r1, r8 + bl sub_80034D4 + ldr r0, _08045A50 + adds r7, r4, r0 + movs r4, 0x6 +_080459F8: + ldrh r0, [r5, 0x4] + lsls r0, 22 + lsrs r2, r0, 22 + adds r0, r4, 0 + cmp r4, 0 + bge _08045A06 + adds r0, r4, 0x7 +_08045A06: + asrs r0, 3 + lsls r1, r0, 3 + subs r1, r4, r1 + adds r1, 0x18 + adds r1, r2, r1 + lsls r0, 6 + adds r1, r0 + lsls r1, 5 + ldr r0, _08045A54 + adds r1, r0 + adds r0, r7, 0 + ldr r2, _08045A58 + bl CpuSet + adds r7, 0x40 + adds r4, 0x1 + adds r0, r6, 0x6 + cmp r4, r0 + blt _080459F8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045A38: .4byte 0x020238cc +_08045A3C: .4byte gUnknown_08400DE6 +_08045A40: .4byte 0x02038808 +_08045A44: .4byte gUnknown_08400DF0 +_08045A48: .4byte 0x02020004 +_08045A4C: .4byte 0x02000520 +_08045A50: .4byte 0x02000540 +_08045A54: .4byte 0x06010000 +_08045A58: .4byte 0x04000008 + thumb_func_end sub_8045998 + + thumb_func_start sub_8045A5C +sub_8045A5C: @ 8045A5C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r2, 24 + lsrs r7, r2, 24 + ldr r1, _08045BE4 + lsls r0, 4 + add r0, r8 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08045A92 + b _08045BF0 +_08045A92: + cmp r7, 0x3 + beq _08045A9A + cmp r7, 0 + bne _08045AAE +_08045A9A: + mov r0, r9 + movs r1, 0x38 + bl PokemonGetField + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_8043FC0 +_08045AAE: + cmp r7, 0x1 + bhi _08045AC8 + mov r0, r9 + movs r1, 0x39 + bl PokemonGetField + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + mov r0, r8 + movs r2, 0 + bl sub_80440EC +_08045AC8: + cmp r7, 0x2 + beq _08045AD0 + cmp r7, 0 + bne _08045AE6 +_08045AD0: + mov r0, r9 + movs r1, 0x3A + bl PokemonGetField + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + mov r0, r8 + movs r2, 0x1 + bl sub_80440EC +_08045AE6: + cmp r7, 0x5 + beq _08045AEE + cmp r7, 0 + bne _08045B22 +_08045AEE: + movs r0, 0 + bl load_gfxc_health_bar + mov r0, r9 + movs r1, 0x3A + bl PokemonGetField + adds r4, r0, 0 + mov r0, r9 + movs r1, 0x39 + bl PokemonGetField + adds r3, r0, 0 + movs r0, 0 + str r0, [sp] + mov r0, r10 + mov r1, r8 + adds r2, r4, 0 + bl sub_8043D84 + mov r0, r10 + mov r1, r8 + movs r2, 0 + movs r3, 0 + bl sub_8045C78 +_08045B22: + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + cmp r0, 0 + bne _08045BA6 + cmp r7, 0x6 + beq _08045B38 + cmp r7, 0 + bne _08045BA6 +_08045B38: + movs r0, 0x3 + bl load_gfxc_health_bar + mov r0, r9 + movs r1, 0xB + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r0, r9 + movs r1, 0x38 + bl PokemonGetField + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + movs r1, 0x19 + bl PokemonGetField + adds r3, r0, 0 + ldr r6, _08045BE8 + lsls r1, r4, 2 + ldr r2, _08045BEC + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r2 + adds r1, r0 + adds r1, r6 + ldr r1, [r1] + subs r3, r1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r0 + adds r4, r6 + ldr r2, [r4] + subs r2, r1 + ldr r0, [sp, 0x4] + str r0, [sp] + mov r0, r10 + mov r1, r8 + bl sub_8043D84 + mov r0, r10 + mov r1, r8 + movs r2, 0x1 + movs r3, 0 + bl sub_8045C78 +_08045BA6: + cmp r7, 0x4 + beq _08045BAE + cmp r7, 0 + bne _08045BB6 +_08045BAE: + mov r0, r8 + mov r1, r9 + bl sub_80451A0 +_08045BB6: + cmp r7, 0x9 + beq _08045BBE + cmp r7, 0 + bne _08045BC4 +_08045BBE: + mov r0, r8 + bl draw_status_ailment_maybe +_08045BC4: + cmp r7, 0xA + bne _08045BCE + mov r0, r8 + bl sub_80458B0 +_08045BCE: + adds r0, r7, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08045C66 + mov r0, r8 + bl sub_8045998 + b _08045C66 + .align 2, 0 +_08045BE4: .4byte 0x02020004 +_08045BE8: .4byte gExperienceTables +_08045BEC: .4byte gBaseStats +_08045BF0: + cmp r7, 0x3 + beq _08045BF8 + cmp r7, 0 + bne _08045C0C +_08045BF8: + mov r0, r9 + movs r1, 0x38 + bl PokemonGetField + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_8043FC0 +_08045C0C: + cmp r7, 0x5 + beq _08045C14 + cmp r7, 0 + bne _08045C48 +_08045C14: + movs r0, 0 + bl load_gfxc_health_bar + mov r0, r9 + movs r1, 0x3A + bl PokemonGetField + adds r4, r0, 0 + mov r0, r9 + movs r1, 0x39 + bl PokemonGetField + adds r3, r0, 0 + movs r0, 0 + str r0, [sp] + mov r0, r10 + mov r1, r8 + adds r2, r4, 0 + bl sub_8043D84 + mov r0, r10 + mov r1, r8 + movs r2, 0 + movs r3, 0 + bl sub_8045C78 +_08045C48: + cmp r7, 0x4 + beq _08045C50 + cmp r7, 0 + bne _08045C58 +_08045C50: + mov r0, r8 + mov r1, r9 + bl sub_80451A0 +_08045C58: + cmp r7, 0x9 + beq _08045C60 + cmp r7, 0 + bne _08045C66 +_08045C60: + mov r0, r8 + bl draw_status_ailment_maybe +_08045C66: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8045A5C + + thumb_func_start sub_8045C78 +sub_8045C78: @ 8045C78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + cmp r2, 0 + bne _08045CBC + lsls r5, r7, 2 + adds r3, r5, r7 + lsls r3, 2 + ldr r4, _08045CB8 + adds r2, r3, r4 + ldr r0, [r2, 0x4] + ldr r1, [r2, 0x8] + ldr r2, [r2, 0xC] + adds r4, 0x10 + adds r3, r4 + movs r4, 0x6 + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + bl sub_8045F58 + adds r6, r0, 0 + adds r4, r5, 0 + b _08045D0A + .align 2, 0 +_08045CB8: .4byte 0x02017850 +_08045CBC: + lsls r4, r7, 2 + adds r0, r4, r7 + lsls r0, 2 + mov r10, r0 + ldr r6, _08045D50 + add r6, r10 + ldr r0, [r6, 0x8] + ldr r1, [r6, 0xC] + ldr r2, [r6, 0x4] + movs r3, 0x8 + bl sub_8046188 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08045CDE + movs r5, 0x1 +_08045CDE: + ldr r0, [r6, 0xC] + mov r8, r0 + adds r1, r5, 0 + bl __divsi3 + cmp r0, 0 + bge _08045CEE + negs r0, r0 +_08045CEE: + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [r6, 0x4] + ldr r1, [r6, 0x8] + ldr r3, _08045D50 + adds r3, 0x10 + add r3, r10 + movs r2, 0x8 + str r2, [sp] + str r5, [sp, 0x4] + mov r2, r8 + bl sub_8045F58 + adds r6, r0, 0 +_08045D0A: + mov r0, r9 + cmp r0, 0x1 + beq _08045D22 + cmp r0, 0 + bne _08045D2A + ldr r0, _08045D54 + adds r0, r4, r0 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08045D2A +_08045D22: + adds r0, r7, 0 + mov r1, r9 + bl sub_8045D58 +_08045D2A: + movs r0, 0x1 + negs r0, r0 + cmp r6, r0 + bne _08045D3E + adds r0, r4, r7 + lsls r0, 2 + ldr r1, _08045D50 + adds r0, r1 + movs r1, 0 + str r1, [r0, 0x10] +_08045D3E: + adds r0, r6, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08045D50: .4byte 0x02017850 +_08045D54: .4byte 0x02017800 + thumb_func_end sub_8045C78 + + thumb_func_start sub_8045D58 +sub_8045D58: @ 8045D58 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + beq _08045D72 + cmp r1, 0x1 + beq _08045E54 + b _08045F42 +_08045D72: + lsls r5, r6, 2 + adds r3, r5, r6 + lsls r3, 2 + ldr r4, _08045E00 + adds r2, r3, r4 + ldr r0, [r2, 0x4] + ldr r1, [r2, 0x8] + ldr r2, [r2, 0xC] + adds r4, 0x10 + adds r3, r4 + add r4, sp, 0x8 + str r4, [sp] + movs r4, 0x6 + str r4, [sp, 0x4] + bl sub_804602C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + mov r8, r1 + adds r1, r5, 0 + cmp r0, 0x18 + bhi _08045DAC + movs r2, 0x38 + mov r8, r2 + cmp r0, 0x9 + bls _08045DAC + movs r4, 0x2F + mov r8, r4 +_08045DAC: + movs r5, 0 + ldr r7, _08045E04 + adds r0, r1, r6 + lsls r6, r0, 2 +_08045DB4: + ldr r0, _08045E00 + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r0, [r0, 0x38] + lsls r0, 24 + lsrs r4, r0, 24 + cmp r5, 0x1 + bhi _08045E10 + mov r0, r8 + bl sub_8043CDC + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r7 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r2, r5, 0x2 + adds r1, r2 + lsls r1, 5 + ldr r2, _08045E08 + adds r1, r2 + ldr r2, _08045E0C + bl CpuSet + b _08045E3E + .align 2, 0 +_08045E00: .4byte 0x02017850 +_08045E04: .4byte 0x02020004 +_08045E08: .4byte 0x06010000 +_08045E0C: .4byte 0x04000008 +_08045E10: + mov r0, r8 + bl sub_8043CDC + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r7 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r5, r1 + lsls r1, 5 + ldr r4, _08045E4C + adds r1, r4 + ldr r2, _08045E50 + bl CpuSet +_08045E3E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08045DB4 + b _08045F42 + .align 2, 0 +_08045E4C: .4byte 0x06010040 +_08045E50: .4byte 0x04000008 +_08045E54: + lsls r5, r6, 2 + adds r3, r5, r6 + lsls r3, 2 + ldr r4, _08045EF0 + adds r2, r3, r4 + ldr r0, [r2, 0x4] + ldr r1, [r2, 0x8] + ldr r2, [r2, 0xC] + adds r4, 0x10 + adds r3, r4 + add r4, sp, 0x8 + str r4, [sp] + movs r4, 0x8 + str r4, [sp, 0x4] + bl sub_804602C + ldr r1, _08045EF4 + lsls r0, r6, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08045EF8 + adds r0, r1 + movs r1, 0x38 + bl PokemonGetField + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + cmp r0, 0x64 + bne _08045EAA + movs r5, 0 + movs r2, 0 +_08045E98: + mov r0, sp + adds r0, r5 + adds r0, 0x8 + strb r2, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _08045E98 +_08045EAA: + movs r5, 0 + ldr r7, _08045EFC + adds r0, r1, r6 + lsls r0, 2 + ldr r1, _08045EF0 + adds r4, r0, r1 +_08045EB6: + cmp r5, 0x3 + bhi _08045F08 + movs r0, 0xC + bl sub_8043CDC + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r7 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r2, r5, 0 + adds r2, 0x24 + adds r1, r2 + lsls r1, 5 + ldr r2, _08045F00 + adds r1, r2 + ldr r2, _08045F04 + bl CpuSet + b _08045F38 + .align 2, 0 +_08045EF0: .4byte 0x02017850 +_08045EF4: .4byte 0x02024a6a +_08045EF8: .4byte 0x03004360 +_08045EFC: .4byte 0x02020004 +_08045F00: .4byte 0x06010000 +_08045F04: .4byte 0x04000008 +_08045F08: + movs r0, 0xC + bl sub_8043CDC + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r7 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r5, r1 + lsls r1, 5 + ldr r2, _08045F50 + adds r1, r2 + ldr r2, _08045F54 + bl CpuSet +_08045F38: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _08045EB6 +_08045F42: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045F50: .4byte 0x06010b80 +_08045F54: .4byte 0x04000008 + thumb_func_end sub_8045D58 + + thumb_func_start sub_8045F58 +sub_8045F58: @ 8045F58 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + adds r4, r1, 0 + mov r8, r2 + adds r5, r3, 0 + ldr r1, [sp, 0x18] + ldr r0, [sp, 0x1C] + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 27 + lsrs r2, r1, 24 + ldr r1, [r5] + ldr r0, _08045F84 + cmp r1, r0 + bne _08045F8A + cmp r7, r2 + bge _08045F88 + lsls r0, r4, 8 + str r0, [r5] + b _08045F8A + .align 2, 0 +_08045F84: .4byte 0xffff8000 +_08045F88: + str r4, [r5] +_08045F8A: + mov r0, r8 + subs r4, r0 + cmp r4, 0 + bge _08045F96 + movs r4, 0 + b _08045F9C +_08045F96: + cmp r4, r7 + ble _08045F9C + adds r4, r7, 0 +_08045F9C: + cmp r7, r2 + bge _08045FB8 + ldr r0, [r5] + asrs r1, r0, 8 + adds r6, r0, 0 + cmp r4, r1 + bne _08045FC4 + movs r0, 0xFF + ands r0, r6 + cmp r0, 0 + bne _08045FC4 + movs r0, 0x1 + negs r0, r0 + b _08046020 +_08045FB8: + ldr r6, [r5] + cmp r4, r6 + bne _08045FC4 + movs r0, 0x1 + negs r0, r0 + b _08046020 +_08045FC4: + cmp r7, r2 + bge _08045FFE + lsls r0, r7, 8 + adds r1, r2, 0 + bl __divsi3 + mov r1, r8 + cmp r1, 0 + bge _08045FE2 + adds r0, r6, r0 + str r0, [r5] + asrs r2, r0, 8 + cmp r2, r4 + blt _0804601E + b _08045FF6 +_08045FE2: + subs r0, r6, r0 + str r0, [r5] + asrs r2, r0, 8 + movs r1, 0xFF + ands r0, r1 + cmp r0, 0 + ble _08045FF2 + adds r2, 0x1 +_08045FF2: + cmp r2, r4 + bgt _0804601E +_08045FF6: + lsls r0, r4, 8 + str r0, [r5] + adds r2, r4, 0 + b _0804601E +_08045FFE: + mov r0, r8 + cmp r0, 0 + bge _08046010 + ldr r0, [r5] + adds r0, r3 + str r0, [r5] + cmp r0, r4 + ble _0804601C + b _0804601A +_08046010: + ldr r0, [r5] + subs r0, r3 + str r0, [r5] + cmp r0, r4 + bge _0804601C +_0804601A: + str r4, [r5] +_0804601C: + ldr r2, [r5] +_0804601E: + adds r0, r2, 0 +_08046020: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8045F58 + + thumb_func_start sub_804602C +sub_804602C: @ 804602C + push {r4-r7,lr} + adds r4, r0, 0 + mov r12, r3 + ldr r7, [sp, 0x14] + ldr r0, [sp, 0x18] + lsls r0, 24 + lsrs r6, r0, 24 + subs r5, r1, r2 + cmp r5, 0 + bge _08046044 + movs r5, 0 + b _0804604A +_08046044: + cmp r5, r4 + ble _0804604A + adds r5, r4, 0 +_0804604A: + lsls r0, r6, 27 + lsrs r3, r0, 24 + movs r1, 0 + cmp r1, r6 + bcs _08046064 + movs r2, 0 +_08046056: + adds r0, r7, r1 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcc _08046056 +_08046064: + cmp r4, r3 + bge _08046078 + mov r1, r12 + ldr r0, [r1] + muls r0, r3 + adds r1, r4, 0 + bl __divsi3 + asrs r0, 8 + b _08046084 +_08046078: + mov r1, r12 + ldr r0, [r1] + muls r0, r3 + adds r1, r4, 0 + bl __divsi3 +_08046084: + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + cmp r3, 0 + bne _0804609A + cmp r5, 0 + ble _0804609A + movs r0, 0x1 + strb r0, [r7] + movs r3, 0x1 + b _080460BE +_0804609A: + movs r1, 0 + movs r4, 0x8 +_0804609E: + cmp r1, r6 + bcs _080460BE + cmp r2, 0x7 + bls _080460BA + adds r0, r7, r1 + strb r4, [r0] + adds r0, r2, 0 + subs r0, 0x8 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + b _0804609E +_080460BA: + adds r0, r7, r1 + strb r2, [r0] +_080460BE: + adds r0, r3, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804602C + + thumb_func_start sub_80460C8 +sub_80460C8: @ 80460C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r5, r0, 0 + adds r6, r1, 0 + adds r4, r2, 0 + mov r8, r3 + ldr r0, [r5] + ldr r1, [r5, 0x4] + ldr r2, [r5, 0x8] + movs r3, 0x6 + str r3, [sp] + movs r3, 0x1 + str r3, [sp, 0x4] + adds r3, r6, 0 + bl sub_8045F58 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_8046128 + ldr r0, [r5] + cmp r0, 0x2F + bgt _08046108 + ldr r0, [r6] + lsls r0, 8 + lsrs r1, r0, 16 + b _0804610A +_08046108: + ldrh r1, [r6] +_0804610A: + movs r2, 0 + ldrsh r0, [r5, r2] + lsls r1, 16 + asrs r1, 16 + mov r2, r8 + bl sub_804373C + lsls r0, r7, 16 + asrs r0, 16 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80460C8 + + thumb_func_start sub_8046128 +sub_8046128: @ 8046128 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x1C + adds r5, r0, 0 + adds r3, r1, 0 + mov r8, r2 + ldr r0, [r5] + ldr r1, [r5, 0x4] + ldr r2, [r5, 0x8] + add r4, sp, 0x8 + str r4, [sp] + movs r4, 0x6 + str r4, [sp, 0x4] + bl sub_804602C + movs r3, 0 + add r7, sp, 0x10 + mov r12, r7 + ldrb r0, [r5, 0xC] + lsls r6, r0, 27 + ldr r4, [r5, 0x10] +_08046154: + lsls r2, r3, 1 + add r2, r12 + lsrs r1, r6, 15 + mov r0, sp + adds r0, r3 + adds r0, 0x8 + ldrb r0, [r0] + adds r0, r4, r0 + orrs r1, r0 + strh r1, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + bls _08046154 + adds r0, r7, 0 + mov r1, r8 + movs r2, 0x6 + bl CpuSet + add sp, 0x1C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8046128 + + thumb_func_start sub_8046188 +sub_8046188: @ 8046188 + push {r4-r7,lr} + adds r6, r2, 0 + lsls r3, 27 + lsrs r7, r3, 24 + subs r5, r0, r1 + cmp r5, 0 + bge _0804619A + movs r5, 0 + b _080461A0 +_0804619A: + cmp r5, r6 + ble _080461A0 + adds r5, r6, 0 +_080461A0: + muls r0, r7 + adds r1, r6, 0 + bl __divsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + muls r0, r7 + adds r1, r6, 0 + bl __divsi3 + lsls r4, 24 + asrs r4, 24 + lsls r0, 24 + asrs r0, 24 + subs r0, r4, r0 + cmp r0, 0 + bge _080461C8 + negs r0, r0 +_080461C8: + lsls r0, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8046188 + + thumb_func_start sub_80461D4 +sub_80461D4: @ 80461D4 + push {r4,lr} + lsls r2, 24 + lsrs r2, 24 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + muls r0, r2 + lsls r1, 16 + asrs r1, 16 + bl __divsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080461F8 + cmp r4, 0 + ble _080461F8 + movs r0, 0x1 +_080461F8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80461D4 + + thumb_func_start sub_8046200 +sub_8046200: @ 8046200 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + bne _08046212 + movs r0, 0x4 + b _0804622E +_08046212: + movs r2, 0x30 + bl sub_80461D4 + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x3 + cmp r1, 0x18 + bhi _0804622E + movs r0, 0x2 + cmp r1, 0x9 + bhi _0804622E + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_0804622E: + pop {r1} + bx r1 + thumb_func_end sub_8046200 + + thumb_func_start sub_8046234 +sub_8046234: @ 8046234 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 24 + lsrs r4, r2, 24 + ldr r5, _0804636C + ldrh r0, [r5, 0x6] + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _08046370 + cmp r0, r1 + bne _08046266 + adds r0, r5, 0 + bl LoadCompressedObjectPic + ldr r0, _08046374 + bl LoadCompressedObjectPalette +_08046266: + ldr r0, _08046378 + bl object_new_hidden_with_callback + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r5, r0, 4 + add r5, r8 + lsls r5, 2 + ldr r0, _0804637C + adds r5, r0 + strh r4, [r5, 0x30] + ldr r0, _08046380 + mov r9, r0 + lsls r6, 16 + asrs r0, r6, 16 + mov r10, r0 + ldr r0, _08046384 + adds r6, r0 + asrs r6, 16 + lsls r4, r7, 16 + asrs r7, r4, 16 + adds r4, r0 + asrs r4, 16 + mov r0, r9 + adds r1, r6, 0 + adds r2, r4, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0804637C + adds r1, r0 + mov r0, r8 + strh r0, [r1, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r1, 0 + bl AnimateSprite + mov r0, r9 + mov r1, r10 + adds r2, r4, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0804637C + adds r4, r0 + mov r0, r8 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r4, 0 + bl AnimateSprite + mov r0, r9 + adds r1, r6, 0 + adds r2, r7, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0804637C + adds r4, r0 + mov r0, r8 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + adds r0, r4, 0 + bl AnimateSprite + mov r0, r9 + mov r1, r10 + adds r2, r7, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0804637C + adds r4, r0 + mov r0, r8 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnim + adds r0, r4, 0 + bl AnimateSprite + mov r0, r8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804636C: .4byte gUnknown_081FAEA4 +_08046370: .4byte 0xffff0000 +_08046374: .4byte gUnknown_081FAEAC +_08046378: .4byte sub_8046388 +_0804637C: .4byte 0x02020004 +_08046380: .4byte gSpriteTemplate_81FAF0C +_08046384: .4byte 0xfff00000 + thumb_func_end sub_8046234 + + thumb_func_start sub_8046388 +sub_8046388: @ 8046388 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080463C0 + ldr r0, _080463B4 + ldrh r0, [r0, 0x6] + bl FreeSpriteTilesByTag + ldr r0, _080463B8 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080463BC + adds r0, r4, 0 + bl DestroySprite + b _080463C0 + .align 2, 0 +_080463B4: .4byte gUnknown_081FAEA4 +_080463B8: .4byte gUnknown_081FAEAC +_080463BC: + ldr r0, _080463C8 + str r0, [r4, 0x1C] +_080463C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080463C8: .4byte SpriteCallbackDummy + thumb_func_end sub_8046388 + + thumb_func_start sub_80463CC +sub_80463CC: @ 80463CC + push {lr} + adds r3, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080463F6 + ldr r2, _080463FC + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x2E] + subs r1, 0x1 + strh r1, [r0, 0x2E] + adds r0, r3, 0 + bl DestroySprite +_080463F6: + pop {r0} + bx r0 + .align 2, 0 +_080463FC: .4byte 0x02020004 + thumb_func_end sub_80463CC + + thumb_func_start sub_8046400 +sub_8046400: @ 8046400 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _08046450 + movs r0, 0x1 + strb r0, [r1] + ldr r6, _08046454 + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08046458 + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0804645C + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08046460 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + strh r5, [r1, 0xC] + ldrb r0, [r6] + strh r0, [r1, 0xE] + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08046450: .4byte 0x02024e6d +_08046454: .4byte 0x02024a60 +_08046458: .4byte 0x02017810 +_0804645C: .4byte sub_8046464 +_08046460: .4byte 0x03004b20 + thumb_func_end sub_8046400 + + thumb_func_start sub_8046464 +sub_8046464: @ 8046464 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r0, 0 + str r0, [sp] + ldr r1, _08046498 + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _0804649C + adds r0, r2, 0x1 + strh r0, [r1, 0x8] + b _08046616 + .align 2, 0 +_08046498: .4byte 0x03004b20 +_0804649C: + ldrh r0, [r1, 0xC] + mov r8, r0 + ldrb r5, [r1, 0xE] + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080464C8 + ldr r1, _080464C0 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080464C4 + b _080464D6 + .align 2, 0 +_080464C0: .4byte 0x02024a6a +_080464C4: .4byte 0x030045c0 +_080464C8: + ldr r1, _08046544 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08046548 +_080464D6: + adds r0, r1 + movs r1, 0x26 + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80478DC + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _0804654C + adds r0, r1 + movs r1, 0x20 + movs r2, 0x50 + movs r3, 0x1D + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _08046550 + mov r9, r2 + lsls r0, r7, 4 + adds r0, r7 + lsls r6, r0, 2 + adds r4, r6, r2 + movs r0, 0x80 + strh r0, [r4, 0x2E] + movs r3, 0 + strh r3, [r4, 0x30] + mov r0, r8 + strh r0, [r4, 0x3C] + mov r2, r8 + cmp r2, 0xFE + beq _0804655C + cmp r2, 0xFF + bne _08046598 + ldr r0, _08046554 + strb r5, [r0] + movs r0, 0x18 + strh r0, [r4, 0x20] + movs r0, 0x44 + strh r0, [r4, 0x22] + mov r0, r9 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _08046558 + str r1, [r0] + b _080465A6 + .align 2, 0 +_08046544: .4byte 0x02024a6a +_08046548: .4byte 0x03004360 +_0804654C: .4byte gSpriteTemplate_820AAB4 +_08046550: .4byte 0x02020004 +_08046554: .4byte 0x02024c08 +_08046558: .4byte sub_8047074 +_0804655C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x18 + strh r0, [r4, 0x22] + ldr r0, _08046590 + strb r5, [r0] + movs r3, 0 + strh r3, [r4, 0x2E] + mov r0, r9 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _08046594 + str r1, [r0] + b _080465A6 + .align 2, 0 +_08046590: .4byte 0x02024c08 +_08046594: .4byte sub_8047254 +_08046598: + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r1, _080465C4 + strb r0, [r1] + movs r0, 0x1 + str r0, [sp] +_080465A6: + ldr r0, _080465C8 + lsls r1, r7, 4 + adds r1, r7 + lsls r1, 2 + adds r4, r1, r0 + ldr r5, _080465C4 + ldrb r0, [r5] + strh r0, [r4, 0x3A] + ldr r2, [sp] + cmp r2, 0 + bne _080465CC + mov r0, r10 + bl DestroyTask + b _08046616 + .align 2, 0 +_080465C4: .4byte 0x02024c08 +_080465C8: .4byte 0x02020004 +_080465CC: + movs r0, 0x22 + strh r0, [r4, 0x2E] + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + strh r0, [r4, 0x36] + ldr r0, _08046628 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + mov r3, r10 + strh r3, [r4, 0x6] + ldr r1, _0804662C + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r5] + strh r1, [r0, 0x10] + ldr r1, _08046630 + str r1, [r0] + movs r0, 0x3D + bl audio_play +_08046616: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046628: .4byte 0x0000ffd8 +_0804662C: .4byte 0x03004b20 +_08046630: .4byte TaskDummy + thumb_func_end sub_8046464 + + thumb_func_start objc_0804ABD4 +objc_0804ABD4: @ 8046634 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r7, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080466D4 + ldrb r6, [r7, 0x6] + ldr r1, _080466E0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldrb r5, [r0, 0x10] + ldrb r0, [r0, 0xC] + mov r8, r0 + adds r0, r7, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r2, r7, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r7, 0x24] + ldrh r1, [r7, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r7, 0x20] + ldrh r0, [r7, 0x26] + ldrh r2, [r7, 0x22] + adds r0, r2 + strh r0, [r7, 0x22] + strh r1, [r7, 0x24] + strh r1, [r7, 0x26] + strh r1, [r7, 0x38] + adds r0, r5, 0 + bl sub_8047978 + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + ldrh r0, [r7, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r7, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + movs r0, 0 + adds r1, r5, 0 + movs r2, 0xE + adds r3, r4, 0 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x2E] + strh r5, [r7, 0x3A] + mov r0, r8 + strh r0, [r7, 0x3C] + adds r0, r6, 0 + bl DestroyTask + ldr r0, _080466E4 + str r0, [r7, 0x1C] +_080466D4: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080466E0: .4byte 0x03004b20 +_080466E4: .4byte sub_80466E8 + thumb_func_end objc_0804ABD4 + + thumb_func_start sub_80466E8 +sub_80466E8: @ 80466E8 + ldr r1, _080466F0 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080466F0: .4byte sub_80466F4 + thumb_func_end sub_80466E8 + + thumb_func_start sub_80466F4 +sub_80466F4: @ 80466F4 + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x38] + adds r0, 0x1 + movs r7, 0 + strh r0, [r6, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0804674E + strh r7, [r6, 0x38] + ldr r0, _08046754 + str r0, [r6, 0x1C] + ldr r5, _08046758 + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0804675C + adds r0, r4 + movs r1, 0x2 + bl StartSpriteAffineAnim + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl AnimateSprite + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x30] +_0804674E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046754: .4byte sub_8046760 +_08046758: .4byte 0x02024be0 +_0804675C: .4byte 0x02020004 + thumb_func_end sub_80466F4 + + thumb_func_start sub_8046760 +sub_8046760: @ 8046760 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _08046778 + movs r0, 0x3C + bl audio_play +_08046778: + ldr r6, _080467C4 + ldr r5, _080467C8 + movs r1, 0x3A + ldrsh r0, [r4, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080467D0 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + movs r2, 0x3A + ldrsh r0, [r4, r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0 + strh r0, [r4, 0x38] + ldr r0, _080467CC + str r0, [r4, 0x1C] + b _080467F0 + .align 2, 0 +_080467C4: .4byte 0x02020004 +_080467C8: .4byte 0x02024be0 +_080467CC: .4byte sub_80467F8 +_080467D0: + ldrh r0, [r1, 0x30] + adds r0, 0x60 + strh r0, [r1, 0x30] + movs r1, 0x3A + ldrsh r0, [r4, r1] + adds r0, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r2, 0x30 + ldrsh r0, [r1, r2] + negs r0, r0 + asrs r0, 8 + strh r0, [r1, 0x26] +_080467F0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8046760 + + thumb_func_start sub_80467F8 +sub_80467F8: @ 80467F8 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08046840 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _08046840 + strh r1, [r4, 0x34] + movs r0, 0x20 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + movs r0, 0 + movs r1, 0x20 + bl cosine + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x36 + ldrsh r1, [r4, r0] + movs r0, 0 + bl cosine + negs r0, r0 + strh r0, [r4, 0x26] + ldr r0, _08046848 + str r0, [r4, 0x1C] +_08046840: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08046848: .4byte sub_804684C + thumb_func_end sub_80467F8 + + thumb_func_start sub_804684C +sub_804684C: @ 804684C + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0 + beq _08046862 + cmp r1, 0x1 + beq _080468D6 + b _08046902 +_08046862: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl cosine + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + adds r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x3F + ble _08046902 + ldrh r0, [r4, 0x36] + subs r0, 0xA + strh r0, [r4, 0x36] + ldr r1, _080468AC + adds r0, r2, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _0804689E + movs r5, 0x1 +_0804689E: + cmp r0, 0x2 + beq _080468BE + cmp r0, 0x2 + bgt _080468B0 + cmp r0, 0x1 + beq _080468B6 + b _080468CE + .align 2, 0 +_080468AC: .4byte 0x00000101 +_080468B0: + cmp r0, 0x3 + beq _080468C6 + b _080468CE +_080468B6: + movs r0, 0x38 + bl audio_play + b _08046902 +_080468BE: + movs r0, 0x39 + bl audio_play + b _08046902 +_080468C6: + movs r0, 0x3A + bl audio_play + b _08046902 +_080468CE: + movs r0, 0x3B + bl audio_play + b _08046902 +_080468D6: + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl cosine + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + subs r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + subs r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + cmp r1, 0 + bgt _08046902 + strh r5, [r4, 0x38] + ldr r0, _08046928 + ands r0, r2 + strh r0, [r4, 0x34] +_08046902: + cmp r5, 0 + beq _0804693A + movs r5, 0 + strh r5, [r4, 0x34] + movs r0, 0x40 + movs r1, 0x20 + bl cosine + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _08046930 + ldr r0, _0804692C + str r0, [r4, 0x1C] + b _0804693A + .align 2, 0 +_08046928: .4byte 0xffffff00 +_0804692C: .4byte sub_8046C78 +_08046930: + ldr r0, _08046940 + str r0, [r4, 0x1C] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] +_0804693A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08046940: .4byte sub_8046944 + thumb_func_end sub_804684C + + thumb_func_start sub_8046944 +sub_8046944: @ 8046944 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _08046978 + movs r0, 0 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _08046980 + str r0, [r4, 0x1C] + movs r0, 0x17 + bl audio_play +_08046978: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08046980: .4byte sub_8046984 + thumb_func_end sub_8046944 + + thumb_func_start sub_8046984 +sub_8046984: @ 8046984 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x4 + bhi _08046A84 + lsls r0, r1, 2 + ldr r1, _0804699C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804699C: .4byte _080469A0 + .align 2, 0 +_080469A0: + .4byte _080469B4 + .4byte _080469E6 + .4byte _080469B4 + .4byte _08046A3A + .4byte _08046A84 +_080469B4: + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x24] + adds r1, r0, r2 + strh r1, [r4, 0x24] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0x3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bls _08046ACA + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + movs r0, 0 + strh r0, [r4, 0x38] + b _08046ACA +_080469E6: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _08046A2C + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _08046A22 + adds r0, r4, 0 + movs r1, 0x2 + bl ChangeSpriteAffineAnim + b _08046ACA +_08046A22: + adds r0, r4, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + b _08046ACA +_08046A2C: + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + b _08046ACA +_08046A3A: + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r2, [r4, 0x34] + adds r0, r2 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x3C + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08046A5C + ldr r0, _08046A58 + str r0, [r4, 0x1C] + b _08046ACA + .align 2, 0 +_08046A58: .4byte sub_8046C78 +_08046A5C: + cmp r1, 0x4 + bne _08046A70 + cmp r0, 0x3 + bne _08046A70 + ldr r0, _08046A6C + str r0, [r4, 0x1C] + b _08046A76 + .align 2, 0 +_08046A6C: .4byte sub_8046E7C +_08046A70: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] +_08046A76: + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + b _08046ACA +_08046A84: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _08046ACA + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r1, [r4, 0x34] + ldr r0, _08046AB8 + ands r0, r1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _08046ABC + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _08046AC4 + .align 2, 0 +_08046AB8: .4byte 0xffffff00 +_08046ABC: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08046AC4: + movs r0, 0x17 + bl audio_play +_08046ACA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8046984 + + thumb_func_start sub_8046AD0 +sub_8046AD0: @ 8046AD0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08046AFC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r6, [r0, 0xC] + ldrb r3, [r0, 0xA] + ldrh r5, [r0, 0x8] + movs r2, 0x26 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x20 + bhi _08046B88 + lsls r0, 2 + ldr r1, _08046B00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08046AFC: .4byte 0x03004b20 +_08046B00: .4byte _08046B04 + .align 2, 0 +_08046B04: + .4byte _08046B88 + .4byte _08046BA6 + .4byte _08046BB2 + .4byte _08046BF6 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046BD0 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046C08 + .4byte _08046C20 + .4byte _08046C48 +_08046B88: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x18] + movs r3, 0x18 + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bgt _08046BA0 + adds r0, r2, 0x1 + strh r0, [r1, 0x18] + b _08046C72 +_08046BA0: + adds r0, r6, 0x1 + strh r0, [r1, 0x26] + b _08046C72 +_08046BA6: + lsls r1, r3, 24 + asrs r1, 24 + adds r0, r5, 0 + bl cry_related + b _08046BEE +_08046BB2: + bl sub_8075398 + ldr r1, _08046BCC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x1C] + movs r1, 0x14 + strh r1, [r0, 0x26] + b _08046C72 + .align 2, 0 +_08046BCC: .4byte 0x03004b20 +_08046BD0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x1C] + movs r6, 0x1C + ldrsh r0, [r1, r6] + cmp r0, 0 + bne _08046C5A + lsls r1, r3, 24 + asrs r1, 24 + adds r0, r5, 0 + movs r2, 0x1 + bl sub_8075114 +_08046BEE: + adds r0, r4, 0 + bl DestroyTask + b _08046C72 +_08046BF6: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + movs r1, 0x6 + strh r1, [r0, 0x1C] + movs r1, 0x1E + strh r1, [r0, 0x26] + b _08046C72 +_08046C08: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x1C] + movs r3, 0x1C + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _08046C5A + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] +_08046C20: + bl sub_80753C4 + lsls r0, 24 + cmp r0, 0 + bne _08046C72 + bl sub_8075398 + ldr r0, _08046C44 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x3 + strh r0, [r1, 0x1C] + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08046C72 + .align 2, 0 +_08046C44: .4byte 0x03004b20 +_08046C48: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x1C] + movs r6, 0x1C + ldrsh r0, [r1, r6] + cmp r0, 0 + beq _08046C60 +_08046C5A: + subs r0, r2, 0x1 + strh r0, [r1, 0x1C] + b _08046C72 +_08046C60: + lsls r1, r3, 24 + asrs r1, 24 + adds r0, r5, 0 + movs r2, 0 + bl sub_8075114 + adds r0, r4, 0 + bl DestroyTask +_08046C72: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8046AD0 + + thumb_func_start sub_8046C78 +sub_8046C78: @ 8046C78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + ldrh r0, [r6, 0x3A] + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_8047978 + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + ldrh r0, [r6, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + ldrh r1, [r6, 0x3A] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0xE + adds r3, r4, 0 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x2E] + ldr r0, _08046D0C + str r0, [r6, 0x1C] + ldr r0, _08046D10 + ldr r1, _08046D14 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08046CE8 + b _08046E1C +_08046CE8: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08046D20 + ldr r1, _08046D18 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08046D1C + adds r0, r1, r0 + movs r3, 0x19 + mov r8, r3 + b _08046D34 + .align 2, 0 +_08046D0C: .4byte sub_8046E9C +_08046D10: .4byte 0x03001770 +_08046D14: .4byte 0x0000043d +_08046D18: .4byte 0x02024a6a +_08046D1C: .4byte 0x030045c0 +_08046D20: + ldr r1, _08046D90 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08046D94 + adds r0, r1, r0 + movs r1, 0xE7 + mov r8, r1 +_08046D34: + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r7, r0, 16 + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _08046D5A + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bne _08046DAE +_08046D5A: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08046DAE + ldr r0, _08046D98 + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08046DAE + ldr r0, _08046D9C + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08046DA4 + bl sub_80755D4 + lsls r0, 24 + cmp r0, 0 + beq _08046DAE + ldr r0, _08046DA0 + bl m4aMPlayStop + b _08046DAE + .align 2, 0 +_08046D90: .4byte 0x02024a6a +_08046D94: .4byte 0x03004360 +_08046D98: .4byte 0x02017840 +_08046D9C: .4byte 0x020239f8 +_08046DA0: .4byte 0x03007380 +_08046DA4: + ldr r0, _08046DC8 + ldr r1, _08046DCC + movs r2, 0x80 + bl m4aMPlayVolumeControl +_08046DAE: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08046DC4 + ldr r0, _08046DD0 + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08046DD4 +_08046DC4: + movs r4, 0 + b _08046DF6 + .align 2, 0 +_08046DC8: .4byte 0x03007380 +_08046DCC: .4byte 0x0000ffff +_08046DD0: .4byte 0x02017840 +_08046DD4: + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _08046DF0 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bne _08046DF4 +_08046DF0: + movs r4, 0x1 + b _08046DF6 +_08046DF4: + movs r4, 0x2 +_08046DF6: + ldr r0, _08046E6C + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08046E70 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r7, [r1, 0x8] + mov r3, r8 + lsls r0, r3, 24 + asrs r0, 24 + strh r0, [r1, 0xA] + strh r4, [r1, 0xC] + strh r2, [r1, 0x26] +_08046E1C: + ldr r5, _08046E74 + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08046E78 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r3, 0x3A + ldrsh r0, [r6, r3] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl AnimateSprite + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x80 + lsls r1, 5 + strh r1, [r0, 0x30] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046E6C: .4byte sub_8046AD0 +_08046E70: .4byte 0x03004b20 +_08046E74: .4byte 0x02024be0 +_08046E78: .4byte 0x02020004 + thumb_func_end sub_8046C78 + + thumb_func_start sub_8046E7C +sub_8046E7C: @ 8046E7C + adds r3, r0, 0 + adds r3, 0x2C + ldrb r1, [r3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r3] + ldr r1, _08046E98 + str r1, [r0, 0x1C] + movs r1, 0 + strh r1, [r0, 0x34] + strh r1, [r0, 0x36] + strh r1, [r0, 0x38] + bx lr + .align 2, 0 +_08046E98: .4byte sub_8046FBC + thumb_func_end sub_8046E7C + + thumb_func_start sub_8046E9C +sub_8046E9C: @ 8046E9C + push {r4-r7,lr} + adds r5, r0, 0 + movs r7, 0 + ldrh r0, [r5, 0x3A] + lsls r0, 24 + lsrs r4, r0, 24 + ldr r6, _08046F00 + ldr r0, _08046F04 + adds r3, r4, r0 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08046EDE + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_08046EDE: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _08046F08 + adds r0, r1, 0 + movs r1, 0 + bl StartSpriteAffineAnim + movs r7, 0x1 + b _08046F24 + .align 2, 0 +_08046F00: .4byte 0x02020004 +_08046F04: .4byte 0x02024be0 +_08046F08: + ldr r2, _08046FA8 + adds r0, r2, 0 + ldrh r2, [r1, 0x30] + adds r0, r2 + strh r0, [r1, 0x30] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r1, 0x26] +_08046F24: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08046FA0 + cmp r7, 0 + beq _08046FA0 + ldr r2, _08046FAC + ldr r0, _08046FB0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r2, 0 + movs r1, 0 + strh r1, [r0, 0x26] + ldr r0, _08046FB4 + strb r2, [r0] + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + ldr r4, _08046FB8 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r5, 0 + bl FreeSpriteOamMatrix + adds r0, r5, 0 + bl DestroySprite + movs r3, 0 + movs r5, 0x8 + adds r2, r4, 0 + movs r4, 0x3 +_08046F78: + ldrb r1, [r2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08046F84 + adds r3, 0x1 +_08046F84: + adds r2, 0xC + subs r4, 0x1 + cmp r4, 0 + bge _08046F78 + cmp r3, 0x4 + bne _08046FA0 + movs r4, 0 +_08046F92: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_804794C + adds r4, 0x1 + cmp r4, 0xB + ble _08046F92 +_08046FA0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046FA8: .4byte 0xfffffee0 +_08046FAC: .4byte 0x02020004 +_08046FB0: .4byte 0x02024be0 +_08046FB4: .4byte 0x02024e6d +_08046FB8: .4byte 0x02017810 + thumb_func_end sub_8046E9C + + thumb_func_start sub_8046FBC +sub_8046FBC: @ 8046FBC + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x3A] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r6, 0x36] + adds r0, 0x1 + strh r0, [r6, 0x36] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0x28 + beq _08047056 + cmp r1, 0x5F + bne _08046FF4 + ldr r0, _08046FEC + movs r1, 0 + strb r1, [r0] + bl m4aMPlayAllStop + ldr r0, _08046FF0 + bl audio_play + b _08047056 + .align 2, 0 +_08046FEC: .4byte 0x02024e6d +_08046FF0: .4byte 0x00000173 +_08046FF4: + ldr r0, _0804705C + cmp r1, r0 + bne _08047056 + ldr r5, _08047060 + ldr r4, _08047064 + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + adds r0, r6, 0 + bl DestroySpriteAndFreeResources + ldr r0, _08047068 + ldr r1, _0804706C + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08047056 + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 2 + ldr r0, _08047070 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_08047056: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804705C: .4byte 0x0000013b +_08047060: .4byte 0x02020004 +_08047064: .4byte 0x02024be0 +_08047068: .4byte 0x03001770 +_0804706C: .4byte 0x0000043d +_08047070: .4byte 0x02017810 + thumb_func_end sub_8046FBC + + thumb_func_start sub_8047074 +sub_8047074: @ 8047074 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x19 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x18 + strh r0, [r4, 0x36] + ldr r0, _080470BC + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + strh r0, [r4, 0x6] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080470C0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080470BC: .4byte 0x0000ffe2 +_080470C0: .4byte sub_80470C4 + thumb_func_end sub_8047074 + + thumb_func_start sub_80470C4 +sub_80470C4: @ 80470C4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldrh r0, [r5, 0x3C] + movs r1, 0xFF + mov r8, r1 + lsrs r0, 8 + subs r0, 0x23 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2C + bhi _080471B8 + ldrh r1, [r5, 0x6] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + bne _08047126 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + adds r6, r1, 0 + ands r6, r0 + ldrh r0, [r5, 0x32] + adds r7, r1, 0 + ands r7, r0 + movs r2, 0x30 + ldrsh r0, [r5, r2] + movs r1, 0x3 + bl __divsi3 + movs r1, 0x2 + negs r1, r1 + adds r4, r1, 0 + ands r0, r4 + orrs r6, r0 + strh r6, [r5, 0x30] + movs r2, 0x32 + ldrsh r0, [r5, r2] + movs r1, 0x3 + bl __divsi3 + ands r0, r4 + orrs r7, r0 + strh r7, [r5, 0x32] + adds r0, r5, 0 + movs r1, 0x4 + bl StartSpriteAffineAnim +_08047126: + ldrh r4, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078B5C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x3 + bl __divsi3 + adds r1, r0, 0 + ldrh r0, [r5, 0x3C] + adds r0, r1 + strh r0, [r5, 0x3C] + lsls r0, 16 + asrs r0, 24 + mov r2, r8 + ands r0, r2 + movs r2, 0x38 + ldrsh r1, [r5, r2] + bl sine + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldrh r1, [r5, 0x6] + adds r0, r1 + strh r0, [r5, 0x6] + lsls r0, 16 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08047176 + strh r4, [r5, 0x2E] + b _0804717E +_08047176: + lsls r0, r4, 16 + asrs r0, 16 + subs r0, 0x1 + strh r0, [r5, 0x2E] +_0804717E: + ldrh r0, [r5, 0x3C] + lsrs r0, 8 + cmp r0, 0x4F + ble _08047220 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + adds r6, r1, 0 + ands r6, r0 + ldrh r0, [r5, 0x32] + adds r7, r1, 0 + ands r7, r0 + movs r2, 0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, 1 + adds r0, r1 + movs r1, 0x2 + negs r1, r1 + adds r2, r1, 0 + ands r0, r2 + orrs r0, r6 + strh r0, [r5, 0x30] + movs r0, 0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + ands r0, r2 + orrs r0, r7 + strh r0, [r5, 0x32] + b _08047220 +_080471B8: + adds r0, r5, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _08047220 + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldrb r0, [r5, 0x6] + strh r0, [r5, 0x3A] + strh r1, [r5, 0x2E] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08047214 + ldr r0, _0804720C + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08047214 + movs r0, 0x3A + ldrsh r4, [r5, r0] + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _08047214 + ldr r0, _08047210 + b _08047216 + .align 2, 0 +_0804720C: .4byte 0x02017840 +_08047210: .4byte sub_8047230 +_08047214: + ldr r0, _0804722C +_08047216: + str r0, [r5, 0x1C] + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAffineAnim +_08047220: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804722C: .4byte sub_8046C78 + thumb_func_end sub_80470C4 + + thumb_func_start sub_8047230 +sub_8047230: @ 8047230 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r1, r0, 0x1 + strh r1, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _0804724A + movs r0, 0 + strh r0, [r2, 0x2E] + ldr r0, _08047250 + str r0, [r2, 0x1C] +_0804724A: + pop {r0} + bx r0 + .align 2, 0 +_08047250: .4byte sub_8046C78 + thumb_func_end sub_8047230 + + thumb_func_start sub_8047254 +sub_8047254: @ 8047254 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080472A4 + movs r0, 0 + strh r0, [r5, 0x2E] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080472A0 + ldr r0, _08047298 + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080472A0 + movs r0, 0x3A + ldrsh r4, [r5, r0] + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _080472A0 + ldr r0, _0804729C + b _080472A2 + .align 2, 0 +_08047298: .4byte 0x02017840 +_0804729C: .4byte sub_8047230 +_080472A0: + ldr r0, _080472AC +_080472A2: + str r0, [r5, 0x1C] +_080472A4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080472AC: .4byte sub_8046C78 + thumb_func_end sub_8047254 + + thumb_func_start sub_80472B0 +sub_80472B0: @ 80472B0 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + movs r4, 0 + str r4, [sp] + bl sub_814086C + lsls r0, 24 + lsrs r0, 24 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80472B0 + + thumb_func_start sub_80472D8 +sub_80472D8: @ 80472D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r3, 0 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80472D8 + + thumb_func_start AddTextPrinterForMessage +AddTextPrinterForMessage: @ 80472F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + mov r9, r2 + mov r10, r3 + ldr r6, [sp, 0x24] + ldr r4, [sp, 0x28] + ldr r0, [sp, 0x2C] + lsls r5, 24 + lsrs r5, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + mov r2, r10 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080473BC + bl LoadCompressedObjectPic + ldr r0, _080473C0 + bl LoadCompressedObjectPalette + ldr r0, _080473C4 + mov r1, r9 + mov r2, r10 + adds r3, r4, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080473C8 + mov r8, r3 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r1, r4, r3 + strh r5, [r1, 0x2E] + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + add r2, r8 + ldrh r0, [r2, 0x20] + strh r0, [r1, 0x38] + ldrh r0, [r2, 0x22] + strh r0, [r1, 0x3A] + mov r0, r9 + strh r0, [r2, 0x20] + mov r3, r10 + strh r3, [r2, 0x22] + strh r7, [r1, 0x30] + mov r0, sp + ldrh r0, [r0] + strh r0, [r1, 0x32] + mov r3, sp + ldrh r3, [r3, 0x30] + strh r3, [r1, 0x34] + ldr r3, [sp, 0x30] + lsrs r0, r3, 16 + strh r0, [r1, 0x36] + movs r0, 0x3 + ands r6, r0 + lsls r6, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r6 + strb r0, [r1, 0x5] + movs r0, 0x1C + add r8, r0 + add r4, r8 + ldr r0, _080473CC + str r0, [r4] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080473BC: .4byte gUnknown_0820A92C +_080473C0: .4byte gUnknown_0820A98C +_080473C4: .4byte gSpriteTemplate_820AAB4 +_080473C8: .4byte 0x02020004 +_080473CC: .4byte sub_80473D0 + thumb_func_end AddTextPrinterForMessage + + thumb_func_start sub_80473D0 +sub_80473D0: @ 80473D0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrh r1, [r6, 0x30] + movs r2, 0x30 + ldrsh r0, [r6, r2] + cmp r0, 0 + bne _0804747C + ldrh r0, [r6, 0x2E] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r6, 0x32] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r4, [r6, 0x34] + ldrh r0, [r6, 0x36] + lsls r0, 16 + orrs r4, r0 + adds r0, r6, 0 + adds r0, 0x43 + ldrb r0, [r0] + cmp r0, 0 + beq _0804740A + subs r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + b _0804740C +_0804740A: + movs r5, 0 +_0804740C: + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r6, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r6, 0x5] + lsls r2, 28 + lsrs r2, 30 + adds r3, r5, 0 + bl sub_80472B0 + movs r0, 0x1 + mov r1, r8 + adds r2, r4, 0 + bl sub_80472D8 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r6, 0x30] + ldr r0, _08047474 + str r0, [r6, 0x1C] + ldr r0, _08047478 + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + adds r4, r0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + adds r0, r4, 0 + bl AnimateSprite + movs r0, 0x80 + lsls r0, 5 + strh r0, [r4, 0x30] + strh r5, [r6, 0x3C] + b _08047480 + .align 2, 0 +_08047474: .4byte sub_804748C +_08047478: .4byte 0x02020004 +_0804747C: + subs r0, r1, 0x1 + strh r0, [r6, 0x30] +_08047480: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80473D0 + + thumb_func_start sub_804748C +sub_804748C: @ 804748C + push {r4-r7,lr} + adds r4, r0, 0 + movs r0, 0 + mov r12, r0 + movs r6, 0 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080474B6 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080474B6: + ldr r0, _08047544 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + adds r5, r1, r0 + adds r0, r5, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080474D8 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAffineAnim + movs r1, 0x1 + mov r12, r1 +_080474D8: + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r7, 0x20 + ldrsh r1, [r4, r7] + subs r0, r1 + movs r1, 0x3C + ldrsh r2, [r4, r1] + muls r0, r2 + cmp r0, 0 + bge _080474EE + adds r0, 0x7F +_080474EE: + asrs r0, 7 + ldrh r7, [r4, 0x20] + adds r0, r7 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r7, 0x22 + ldrsh r1, [r4, r7] + subs r0, r1 + muls r0, r2 + cmp r0, 0 + bge _0804750A + adds r0, 0x7F +_0804750A: + asrs r0, 7 + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r3, [r5, 0x20] + strh r0, [r5, 0x22] + ldrh r2, [r4, 0x3C] + movs r7, 0x3C + ldrsh r0, [r4, r7] + cmp r0, 0x7F + bgt _0804754C + ldr r1, _08047548 + lsls r0, r2, 24 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _08047530 + adds r0, 0x7 +_08047530: + asrs r0, 3 + negs r0, r0 + lsls r0, 16 + lsrs r0, 16 + adds r1, r2, 0x4 + strh r1, [r4, 0x3C] + strh r0, [r5, 0x24] + strh r0, [r5, 0x26] + b _0804755A + .align 2, 0 +_08047544: .4byte 0x02020004 +_08047548: .4byte gUnknown_08208344 +_0804754C: + ldrh r0, [r4, 0x38] + strh r0, [r5, 0x20] + ldrh r0, [r4, 0x3A] + strh r0, [r5, 0x22] + strh r6, [r5, 0x24] + strh r6, [r5, 0x26] + movs r6, 0x1 +_0804755A: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08047578 + mov r2, r12 + cmp r2, 0 + beq _08047578 + cmp r6, 0 + beq _08047578 + adds r0, r4, 0 + bl DestroySpriteAndFreeResources +_08047578: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804748C + + thumb_func_start sub_8047580 +sub_8047580: @ 8047580 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + adds r6, r2, 0 + mov r8, r3 + ldr r5, [sp, 0x20] + ldr r4, [sp, 0x24] + ldr r0, [sp, 0x28] + mov r9, r0 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r6, 24 + lsrs r6, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _08047624 + bl LoadCompressedObjectPic + ldr r0, _08047628 + bl LoadCompressedObjectPalette + ldr r0, _0804762C + adds r1, r6, 0 + mov r2, r8 + adds r3, r4, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r6, _08047630 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r6 + mov r1, r10 + strh r1, [r2, 0x2E] + mov r4, r9 + strh r4, [r2, 0x30] + strh r7, [r2, 0x32] + mov r1, sp + ldrh r1, [r1, 0x2C] + strh r1, [r2, 0x34] + ldr r4, [sp, 0x2C] + lsrs r1, r4, 16 + strh r1, [r2, 0x36] + movs r1, 0x3 + ands r5, r1 + lsls r5, 2 + ldrb r4, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r4 + orrs r1, r5 + strb r1, [r2, 0x5] + adds r6, 0x1C + adds r3, r6 + ldr r1, _08047634 + str r1, [r3] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08047624: .4byte gUnknown_0820A92C +_08047628: .4byte gUnknown_0820A98C +_0804762C: .4byte gSpriteTemplate_820AAB4 +_08047630: .4byte 0x02020004 +_08047634: .4byte sub_8047638 + thumb_func_end sub_8047580 + + thumb_func_start sub_8047638 +sub_8047638: @ 8047638 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080476D0 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r5, [r4, 0x34] + ldrh r0, [r4, 0x36] + lsls r0, 16 + orrs r5, r0 + adds r0, r4, 0 + adds r0, 0x43 + ldrb r0, [r0] + cmp r0, 0 + beq _08047672 + subs r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + b _08047674 +_08047672: + movs r6, 0 +_08047674: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r4, 0x5] + lsls r2, 28 + lsrs r2, 30 + adds r3, r6, 0 + bl sub_80472B0 + movs r0, 0x1 + mov r1, r8 + adds r2, r5, 0 + bl sub_80472D8 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x30] + ldr r0, _080476C8 + str r0, [r4, 0x1C] + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + ldr r0, _080476CC + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + adds r0, r4, 0 + bl AnimateSprite + strh r5, [r4, 0x30] + b _080476D4 + .align 2, 0 +_080476C8: .4byte sub_80476E0 +_080476CC: .4byte 0x02020004 +_080476D0: + subs r0, r1, 0x1 + strh r0, [r4, 0x30] +_080476D4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8047638 + + thumb_func_start sub_80476E0 +sub_80476E0: @ 80476E0 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x38] + adds r0, 0x1 + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _080476F8 + movs r0, 0x3C + bl audio_play +_080476F8: + ldrh r1, [r5, 0x2E] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _08047734 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0804773C + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAnim + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + strh r0, [r5, 0x38] + ldr r0, _08047738 + str r0, [r5, 0x1C] + b _0804774C + .align 2, 0 +_08047734: .4byte 0x02020004 +_08047738: .4byte sub_8047754 +_0804773C: + ldrh r0, [r4, 0x30] + adds r0, 0x60 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + negs r0, r0 + asrs r0, 8 + strh r0, [r4, 0x26] +_0804774C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80476E0 + + thumb_func_start sub_8047754 +sub_8047754: @ 8047754 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08047768 + ldr r0, _0804776C + str r0, [r2, 0x1C] +_08047768: + pop {r0} + bx r0 + .align 2, 0 +_0804776C: .4byte SpriteCallbackDummy + thumb_func_end sub_8047754 + + thumb_func_start obj_delete_and_free_associated_resources_ +obj_delete_and_free_associated_resources_: @ 8047770 + push {lr} + bl DestroySpriteAndFreeResources + pop {r0} + bx r0 + thumb_func_end obj_delete_and_free_associated_resources_ + + thumb_func_start sub_804777C +sub_804777C: @ 804777C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r0, _080477FC + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r6, _08047800 + adds r4, r0, r6 + movs r1, 0 + movs r0, 0x5 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r0, 0x73 + strh r0, [r4, 0x24] + strh r1, [r4, 0x26] + ldr r0, _08047804 + str r0, [r4, 0x1C] + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080477CA + ldrh r0, [r4, 0x2E] + negs r0, r0 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + negs r0, r0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + negs r0, r0 + strh r0, [r4, 0x26] +_080477CA: + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r1, r0, r1 + adds r0, r6 + ldr r1, [r1] + bl _call_via_r1 + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080477F4 + ldr r0, _08047808 + str r0, [r4, 0x1C] +_080477F4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080477FC: .4byte 0x03004340 +_08047800: .4byte 0x02020004 +_08047804: .4byte sub_8047830 +_08047808: .4byte sub_804780C + thumb_func_end sub_804777C + + thumb_func_start sub_804780C +sub_804780C: @ 804780C + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _08047826 + movs r0, 0 + strh r0, [r1, 0x30] + ldr r0, _0804782C + str r0, [r1, 0x1C] +_08047826: + pop {r0} + bx r0 + .align 2, 0 +_0804782C: .4byte sub_8047830 + thumb_func_end sub_804780C + + thumb_func_start sub_8047830 +sub_8047830: @ 8047830 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x24] + ldrh r1, [r2, 0x2E] + subs r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x26] + ldrh r1, [r2, 0x30] + subs r0, r1 + strh r0, [r2, 0x26] + ldr r0, [r2, 0x24] + cmp r0, 0 + bne _0804784E + ldr r0, _08047854 + str r0, [r2, 0x1C] +_0804784E: + pop {r0} + bx r0 + .align 2, 0 +_08047854: .4byte SpriteCallbackDummy + thumb_func_end sub_8047830 + + thumb_func_start sub_8047858 +sub_8047858: @ 8047858 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08047890 + adds r0, r5, 0 + bl object_new_hidden_with_callback + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08047894 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r3, r1, r2 + movs r0, 0x1 + strh r0, [r3, 0x2E] + ldr r0, _08047898 + adds r4, r0 + ldrb r0, [r4] + strh r0, [r3, 0x30] + adds r2, 0x1C + adds r1, r2 + str r5, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08047890: .4byte oamc_804BEB4 +_08047894: .4byte 0x02020004 +_08047898: .4byte 0x03004340 + thumb_func_end sub_8047858 + + thumb_func_start oamc_804BEB4 +oamc_804BEB4: @ 804789C + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080478D8 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrh r0, [r3, 0x2E] + movs r2, 0 + strh r0, [r1, 0x26] + ldrh r0, [r3, 0x2E] + negs r0, r0 + strh r0, [r3, 0x2E] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080478D4 + strh r2, [r1, 0x24] + strh r2, [r1, 0x26] + adds r0, r3, 0 + bl DestroySprite +_080478D4: + pop {r0} + bx r0 + .align 2, 0 +_080478D8: .4byte 0x02020004 + thumb_func_end oamc_804BEB4 + + thumb_func_start sub_80478DC +sub_80478DC: @ 80478DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08047938 + lsls r6, r4, 3 + adds r5, r6, r0 + ldrh r0, [r5, 0x6] + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _0804793C + cmp r0, r1 + bne _08047904 + adds r0, r5, 0 + bl LoadCompressedObjectPic + ldr r0, _08047940 + adds r0, r6, r0 + bl LoadCompressedObjectPalette +_08047904: + cmp r4, 0x6 + beq _08047930 + cmp r4, 0x6 + blt _08047914 + cmp r4, 0xB + bgt _08047914 + cmp r4, 0xA + bge _08047930 +_08047914: + ldr r1, _08047938 + lsls r0, r4, 3 + adds r0, r1 + ldrh r0, [r0, 0x6] + bl GetSpriteTileStartByTag + adds r1, r0, 0 + lsls r1, 16 + ldr r0, _08047944 + lsrs r1, 11 + ldr r2, _08047948 + adds r1, r2 + bl LZDecompressVram +_08047930: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08047938: .4byte gUnknown_0820A92C +_0804793C: .4byte 0xffff0000 +_08047940: .4byte gUnknown_0820A98C +_08047944: .4byte gUnknown_08D030D0 +_08047948: .4byte 0x06010100 + thumb_func_end sub_80478DC + + thumb_func_start sub_804794C +sub_804794C: @ 804794C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + ldr r0, _08047970 + lsrs r4, 21 + adds r0, r4, r0 + ldrh r0, [r0, 0x6] + bl FreeSpriteTilesByTag + ldr r0, _08047974 + adds r4, r0 + ldrh r0, [r4, 0x4] + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08047970: .4byte gUnknown_0820A92C +_08047974: .4byte gUnknown_0820A98C + thumb_func_end sub_804794C + + thumb_func_start sub_8047978 +sub_8047978: @ 8047978 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080479A4 + ldr r1, _0804799C + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080479A0 + b _080479B2 + .align 2, 0 +_0804799C: .4byte 0x02024a6a +_080479A0: .4byte 0x030045c0 +_080479A4: + ldr r1, _080479C4 + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080479C8 +_080479B2: + adds r0, r1 + movs r1, 0x26 + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080479C4: .4byte 0x02024a6a +_080479C8: .4byte 0x03004360 + thumb_func_end sub_8047978 + + thumb_func_start CheckForFlashMemory +CheckForFlashMemory: @ 80479CC + push {lr} + bl IdentifyFlash + lsls r0, 16 + cmp r0, 0 + bne _080479E8 + ldr r1, _080479E4 + movs r0, 0x1 + str r0, [r1] + bl InitFlashTimer + b _080479EE + .align 2, 0 +_080479E4: .4byte 0x03004820 +_080479E8: + ldr r1, _080479F4 + movs r0, 0 + str r0, [r1] +_080479EE: + pop {r0} + bx r0 + .align 2, 0 +_080479F4: .4byte 0x03004820 + thumb_func_end CheckForFlashMemory + + thumb_func_start sub_80479F8 +sub_80479F8: @ 80479F8 + ldr r0, _08047A00 + ldrb r0, [r0, 0x9] + bx lr + .align 2, 0 +_08047A00: .4byte 0x02024ea4 + thumb_func_end sub_80479F8 + + thumb_func_start sub_8047A04 +sub_8047A04: @ 8047A04 + ldr r1, _08047A0C + movs r0, 0 + strb r0, [r1, 0x9] + bx lr + .align 2, 0 +_08047A0C: .4byte 0x02024ea4 + thumb_func_end sub_8047A04 + + thumb_func_start sub_8047A10 +sub_8047A10: @ 8047A10 + ldr r1, _08047A18 + movs r0, 0x1 + strb r0, [r1, 0x9] + bx lr + .align 2, 0 +_08047A18: .4byte 0x02024ea4 + thumb_func_end sub_8047A10 + + thumb_func_start sub_8047A1C +sub_8047A1C: @ 8047A1C + push {lr} + movs r0, 0 + bl gpu_sync_bg_hide + ldr r1, _08047A30 + movs r0, 0x1 + strb r0, [r1, 0x9] + pop {r0} + bx r0 + .align 2, 0 +_08047A30: .4byte 0x02024ea4 + thumb_func_end sub_8047A1C + + thumb_func_start sub_8047A34 +sub_8047A34: @ 8047A34 + ldr r1, _08047A3C + movs r0, 0 + strb r0, [r1, 0x9] + bx lr + .align 2, 0 +_08047A3C: .4byte 0x02024ea4 + thumb_func_end sub_8047A34 + + thumb_func_start sub_8047A40 +sub_8047A40: @ 8047A40 + push {r4-r6,lr} + ldr r2, _08047A78 + ldr r0, _08047A7C + ldrb r1, [r0] + movs r3, 0x8D + lsls r3, 2 + adds r0, r2, r3 + strb r1, [r0] + movs r6, 0 + movs r0, 0x8E + lsls r0, 2 + adds r5, r2, r0 + movs r4, 0 +_08047A5A: + ldr r1, _08047A80 + adds r1, r4, r1 + adds r0, r5, 0 + movs r2, 0x64 + bl memcpy + adds r5, 0x64 + adds r4, 0x64 + adds r6, 0x1 + cmp r6, 0x5 + ble _08047A5A + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08047A78: .4byte 0x02025734 +_08047A7C: .4byte 0x03004350 +_08047A80: .4byte 0x03004360 + thumb_func_end sub_8047A40 + + thumb_func_start copy_player_party_from_sav1 +copy_player_party_from_sav1: @ 8047A84 + push {r4-r6,lr} + ldr r0, _08047AC0 + ldr r1, _08047AC4 + movs r2, 0x8D + lsls r2, 2 + adds r1, r2 + ldrb r1, [r1] + strb r1, [r0] + ldr r4, _08047AC8 + movs r5, 0 + movs r0, 0xFA + lsls r0, 1 + adds r6, r4, r0 +_08047A9E: + ldr r1, _08047AC4 + adds r1, r5, r1 + movs r2, 0x8E + lsls r2, 2 + adds r1, r2 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy + adds r4, 0x64 + adds r5, 0x64 + cmp r4, r6 + ble _08047A9E + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08047AC0: .4byte 0x03004350 +_08047AC4: .4byte 0x02025734 +_08047AC8: .4byte 0x03004360 + thumb_func_end copy_player_party_from_sav1 + + thumb_func_start sub_8047ACC +sub_8047ACC: @ 8047ACC + push {r4-r7,lr} + ldr r0, _08047AFC + ldr r4, _08047B00 + movs r1, 0x9E + lsls r1, 4 + adds r3, r0, r1 + movs r2, 0xF +_08047ADA: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r4, 0x24 + adds r3, 0x24 + subs r2, 0x1 + cmp r2, 0 + bge _08047ADA + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08047AFC: .4byte 0x02025734 +_08047B00: .4byte 0x030048a0 + thumb_func_end sub_8047ACC + + thumb_func_start save_deserialize_npcs +save_deserialize_npcs: @ 8047B04 + push {r4-r7,lr} + ldr r0, _08047B34 + movs r1, 0x9E + lsls r1, 4 + adds r4, r0, r1 + ldr r3, _08047B38 + movs r2, 0xF +_08047B12: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r4, 0x24 + adds r3, 0x24 + subs r2, 0x1 + cmp r2, 0 + bge _08047B12 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08047B34: .4byte 0x02025734 +_08047B38: .4byte 0x030048a0 + thumb_func_end save_deserialize_npcs + + thumb_func_start save_serialize_game +save_serialize_game: @ 8047B3C + push {lr} + bl sub_8047A40 + bl sub_8047ACC + pop {r0} + bx r0 + thumb_func_end save_serialize_game + + thumb_func_start save_deserialize_game +save_deserialize_game: @ 8047B4C + push {lr} + bl copy_player_party_from_sav1 + bl save_deserialize_npcs + pop {r0} + bx r0 + thumb_func_end save_deserialize_game + + thumb_func_start copy_bags_and_unk_data_from_save_blocks +copy_bags_and_unk_data_from_save_blocks: @ 8047B5C + push {r4-r7,lr} + ldr r0, _08047C0C + movs r1, 0xAC + lsls r1, 3 + adds r3, r0, r1 + ldr r1, _08047C10 + movs r2, 0x13 +_08047B6A: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047B6A + ldr r1, _08047C10 + ldr r0, _08047C0C + movs r2, 0xB6 + lsls r2, 3 + adds r3, r0, r2 + adds r1, 0x50 + movs r2, 0x13 +_08047B82: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047B82 + ldr r1, _08047C10 + ldr r0, _08047C0C + movs r5, 0xC0 + lsls r5, 3 + adds r3, r0, r5 + adds r1, 0xA0 + movs r2, 0xF +_08047B9A: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047B9A + ldr r1, _08047C10 + ldr r0, _08047C0C + movs r6, 0xC8 + lsls r6, 3 + adds r3, r0, r6 + adds r1, 0xE0 + movs r2, 0x3F +_08047BB2: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047BB2 + ldr r1, _08047C10 + ldr r0, _08047C0C + movs r7, 0xE8 + lsls r7, 3 + adds r3, r0, r7 + movs r0, 0xF0 + lsls r0, 1 + adds r1, r0 + movs r2, 0x2D +_08047BCE: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047BCE + ldr r0, _08047C10 + ldr r4, _08047C0C + movs r1, 0xA6 + lsls r1, 2 + adds r3, r0, r1 + ldr r2, _08047C14 + mov r12, r2 + movs r2, 0xF +_08047BE8: + adds r1, r3, 0 + mov r5, r12 + adds r0, r4, r5 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r4, 0x24 + adds r3, 0x24 + subs r2, 0x1 + cmp r2, 0 + bge _08047BE8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08047C0C: .4byte 0x02025734 +_08047C10: .4byte 0x020291f4 +_08047C14: .4byte 0x00002b4c + thumb_func_end copy_bags_and_unk_data_from_save_blocks + + thumb_func_start copy_bags_and_unk_data_to_save_blocks +copy_bags_and_unk_data_to_save_blocks: @ 8047C18 + push {r4-r7,lr} + ldr r0, _08047CCC + ldr r3, _08047CD0 + movs r2, 0xAC + lsls r2, 3 + adds r1, r0, r2 + movs r2, 0x13 +_08047C26: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047C26 + ldr r1, _08047CCC + ldr r0, _08047CD0 + adds r3, r0, 0 + adds r3, 0x50 + movs r5, 0xB6 + lsls r5, 3 + adds r1, r5 + movs r2, 0x13 +_08047C40: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047C40 + ldr r1, _08047CCC + ldr r0, _08047CD0 + adds r3, r0, 0 + adds r3, 0xA0 + movs r6, 0xC0 + lsls r6, 3 + adds r1, r6 + movs r2, 0xF +_08047C5A: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047C5A + ldr r1, _08047CCC + ldr r0, _08047CD0 + adds r3, r0, 0 + adds r3, 0xE0 + movs r7, 0xC8 + lsls r7, 3 + adds r1, r7 + movs r2, 0x3F +_08047C74: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047C74 + ldr r1, _08047CCC + ldr r0, _08047CD0 + movs r2, 0xF0 + lsls r2, 1 + adds r3, r0, r2 + movs r5, 0xE8 + lsls r5, 3 + adds r1, r5 + movs r2, 0x2D +_08047C90: + ldm r3!, {r0} + stm r1!, {r0} + subs r2, 0x1 + cmp r2, 0 + bge _08047C90 + ldr r0, _08047CCC + ldr r4, _08047CD0 + ldr r6, _08047CD4 + adds r3, r0, r6 + movs r7, 0xA6 + lsls r7, 2 + mov r12, r7 + movs r2, 0xF +_08047CAA: + adds r1, r3, 0 + mov r5, r12 + adds r0, r4, r5 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r4, 0x24 + adds r3, 0x24 + subs r2, 0x1 + cmp r2, 0 + bge _08047CAA + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08047CCC: .4byte 0x02025734 +_08047CD0: .4byte 0x020291f4 +_08047CD4: .4byte 0x00002b4c + thumb_func_end copy_bags_and_unk_data_to_save_blocks + + thumb_func_start sub_8047CD8 +sub_8047CD8: @ 8047CD8 + push {lr} + ldr r0, _08047CE4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08047CE4: .4byte sub_8047EC0 + thumb_func_end sub_8047CD8 + + thumb_func_start sub_8047CE8 +sub_8047CE8: @ 8047CE8 + push {r4-r6,lr} + ldr r6, _08047D44 + ldr r5, _08047D48 + ldr r1, [r5] + ldr r2, _08047D4C + adds r0, r6, 0 + movs r3, 0xC + bl sub_804AFB8 + bl GetMultiplayerId + lsls r0, 24 + ldr r1, [r5, 0xC] + movs r3, 0x80 + lsls r3, 17 + eors r3, r0 + lsrs r3, 24 + lsls r2, r3, 3 + subs r2, r3 + lsls r2, 2 + ldr r0, _08047D50 + adds r2, r0 + adds r0, r6, 0 + movs r3, 0xC + bl sub_804AFB8 + ldr r1, [r5, 0x18] + ldr r4, _08047D54 + ldr r2, [r4] + adds r0, r6, 0 + movs r3, 0x8 + bl sub_804AFB8 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x20] + movs r2, 0x14 + bl sub_804ACD8 + movs r0, 0x3 + movs r1, 0 + bl nullsub_5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08047D44: .4byte gWindowConfig_81E725C +_08047D48: .4byte 0x020296cc +_08047D4C: .4byte 0x02024ea4 +_08047D50: .4byte 0x03002978 +_08047D54: .4byte gUnknown_0820C14C + thumb_func_end sub_8047CE8 + + thumb_func_start sub_8047D58 +sub_8047D58: @ 8047D58 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + ldr r0, _08047E30 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + cmp r0, 0x5 + bls _08047D72 + movs r1, 0x1 +_08047D72: + movs r5, 0 + lsls r2, r1, 2 + mov r6, sp + ldr r0, _08047E34 + adds r1, r0, 0x1 + adds r1, r2 + mov r8, r1 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r4, r0, 16 +_08047D86: + mov r1, sp + ldr r0, _08047E38 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldrh r0, [r6] + adds r0, r5 + strh r0, [r6] + asrs r1, r4, 16 + mov r0, sp + mov r3, r8 + ldrb r2, [r3] + movs r3, 0x1 + bl CreateSprite + movs r7, 0x80 + lsls r7, 14 + adds r4, r7 + adds r5, 0x1 + cmp r5, 0x2 + ble _08047D86 + bl GetMultiplayerId + lsls r0, 24 + movs r1, 0x80 + lsls r1, 17 + eors r1, r0 + lsrs r1, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _08047E3C + adds r0, r1 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + cmp r0, 0x5 + bls _08047DDA + movs r1, 0x1 +_08047DDA: + movs r5, 0 + lsls r2, r1, 2 + mov r6, sp + ldr r0, _08047E40 + adds r1, r2, r0 + mov r8, r1 + subs r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r4, r0, 16 +_08047DEE: + mov r1, sp + ldr r0, _08047E38 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + adds r0, r5, 0x3 + ldrh r1, [r6] + adds r0, r1 + strh r0, [r6] + asrs r1, r4, 16 + mov r0, sp + mov r3, r8 + ldrb r2, [r3] + movs r3, 0x1 + bl CreateSprite + movs r7, 0x80 + lsls r7, 14 + adds r4, r7 + adds r5, 0x1 + cmp r5, 0x2 + ble _08047DEE + movs r0, 0x5 + movs r1, 0 + bl nullsub_5 + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08047E30: .4byte 0x02024ea4 +_08047E34: .4byte gUnknown_0820C2E6 +_08047E38: .4byte gSpriteTemplate_820C0EC +_08047E3C: .4byte 0x03002978 +_08047E40: .4byte gUnknown_0820C2E9 + thumb_func_end sub_8047D58 + + thumb_func_start sub_8047E44 +sub_8047E44: @ 8047E44 + push {r4-r7,lr} + sub sp, 0x18 + movs r4, 0 + mov r5, sp + movs r6, 0xD6 + lsls r6, 16 +_08047E50: + mov r1, sp + ldr r0, _08047EBC + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + adds r0, r4, 0x6 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + asrs r1, r6, 16 + mov r0, sp + movs r2, 0x98 + movs r3, 0x1 + bl CreateSprite + movs r2, 0x80 + lsls r2, 14 + adds r6, r2 + adds r4, 0x1 + cmp r4, 0x1 + ble _08047E50 + movs r4, 0 + mov r5, sp + movs r6, 0xC0 + lsls r6, 13 +_08047E84: + mov r1, sp + ldr r0, _08047EBC + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + adds r0, r4, 0 + adds r0, 0x8 + ldrh r3, [r5] + adds r0, r3 + strh r0, [r5] + asrs r1, r6, 16 + mov r0, sp + movs r2, 0x96 + movs r3, 0x1 + bl CreateSprite + movs r7, 0x80 + lsls r7, 14 + adds r6, r7 + adds r4, 0x1 + cmp r4, 0x4 + ble _08047E84 + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08047EBC: .4byte gSpriteTemplate_820C0EC + thumb_func_end sub_8047E44 + + thumb_func_start sub_8047EC0 +sub_8047EC0: @ 8047EC0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + ldr r1, _08047EE4 + ldr r2, _08047EE8 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x15 + bls _08047ED8 + b _080484C6 +_08047ED8: + lsls r0, 2 + ldr r1, _08047EEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08047EE4: .4byte 0x03001770 +_08047EE8: .4byte 0x0000043c +_08047EEC: .4byte _08047EF0 + .align 2, 0 +_08047EF0: + .4byte _08047F48 + .4byte _08048048 + .4byte _080480B4 + .4byte _080480E0 + .4byte _08048130 + .4byte _08048160 + .4byte _08048172 + .4byte _080482B4 + .4byte _080482DC + .4byte _08048300 + .4byte _08048328 + .4byte _0804834C + .4byte _08048360 + .4byte _080483B8 + .4byte _08048400 + .4byte _08048418 + .4byte _08048430 + .4byte _08048448 + .4byte _0804845A + .4byte _08048470 + .4byte _08048488 + .4byte _080484A8 +_08047F48: + ldr r5, _08048018 + ldr r6, _0804801C + str r6, [r5] + bl sub_804AA88 + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, [r5] + adds r0, 0xC8 + ldr r1, _08048020 + bl sub_804A964 + ldr r0, _08048024 + bl SetVBlankCallback + ldr r0, _08048028 + bl sub_8071C4C + ldr r4, _0804802C + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, [r5] + adds r0, 0x4 + adds r1, r4, 0 + bl InitWindowFromConfig + movs r0, 0x14 + bl sub_8064EF4 + ldr r1, [r5] + adds r1, 0x7A + movs r4, 0 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0x4 + bl sub_8064F08 + bl sub_8071EF4 + bl sub_809D51C + ldr r0, [r5] + adds r0, 0x75 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x7B + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x7C + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x80 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x81 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x86 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x87 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0xB4 + strb r4, [r0] + ldr r0, _08048030 + strb r4, [r0] + ldr r1, _08048034 + ldr r3, _08048038 + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 + bl sub_804AA0C + add r0, sp, 0x10 + strh r4, [r0] + movs r0, 0xC0 + lsls r0, 7 + adds r1, r6, r0 + ldr r2, _0804803C + add r0, sp, 0x10 + bl CpuSet + ldr r1, _08048040 + movs r2, 0xD8 + lsls r2, 7 + adds r6, r2 + adds r0, r1, 0 + adds r0, 0x30 + ldr r2, _08048044 +_0804800A: + str r6, [r0] + adds r6, r2 + subs r0, 0x4 + cmp r0, r1 + bge _0804800A + b _080484C6 + .align 2, 0 +_08048018: .4byte 0x03004824 +_0804801C: .4byte 0x02017000 +_08048020: .4byte 0x06002800 +_08048024: .4byte sub_80489F4 +_08048028: .4byte gWindowConfig_81E6CE4 +_0804802C: .4byte gWindowConfig_81E6F84 +_08048030: .4byte 0x03000508 +_08048034: .4byte 0x03001770 +_08048038: .4byte 0x0000043c +_0804803C: .4byte 0x01000680 +_08048040: .4byte 0x020296cc +_08048044: .4byte 0xffffff00 +_08048048: + ldr r1, _08048098 + ldr r3, _0804809C + adds r0, r3, 0 + strh r0, [r1] + bl OpenLink + movs r6, 0 + movs r4, 0 +_08048058: + movs r0, 0x64 + muls r0, r6 + ldr r1, _080480A0 + adds r0, r1 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + movs r1, 0 + movs r2, 0 + movs r3, 0x20 + bl create_pokemon_set_level + adds r6, 0x1 + cmp r6, 0x5 + ble _08048058 + ldr r1, _080480A4 + ldr r0, _080480A8 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, _080480AC + ldr r0, [r0] + adds r0, 0xB4 + strb r2, [r0] + ldr r0, _080480B0 + movs r1, 0x1 + bl CreateTask + b _080484C6 + .align 2, 0 +_08048098: .4byte 0x03002b74 +_0804809C: .4byte 0x00001122 +_080480A0: .4byte 0x030045c0 +_080480A4: .4byte 0x03001770 +_080480A8: .4byte 0x0000043c +_080480AC: .4byte 0x03004824 +_080480B0: .4byte sub_8083C50 +_080480B4: + ldr r2, _080480D8 + ldr r1, [r2] + adds r1, 0xB4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0xB4 + ldrb r0, [r1] + cmp r0, 0xB + bhi _080480CE + b _080484C6 +_080480CE: + movs r0, 0 + strb r0, [r1] + ldr r2, _080480DC + adds r1, r3, r2 + b _08048498 + .align 2, 0 +_080480D8: .4byte 0x03004824 +_080480DC: .4byte 0x0000043c +_080480E0: + bl GetLinkPlayerCount_2 + adds r4, r0, 0 + bl sub_800820C + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bcs _080480F4 + b _080484C6 +_080480F4: + bl IsLinkMaster + lsls r0, 24 + cmp r0, 0 + beq _08048120 + ldr r0, _0804811C + ldr r1, [r0] + adds r1, 0xB4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bhi _08048114 + b _080484C6 +_08048114: + bl sub_8007F4C + b _08048492 + .align 2, 0 +_0804811C: .4byte 0x03004824 +_08048120: + ldr r1, _08048128 + ldr r0, _0804812C + adds r1, r0 + b _08048498 + .align 2, 0 +_08048128: .4byte 0x03001770 +_0804812C: .4byte 0x0000043c +_08048130: + ldr r0, _08048154 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0804813A + b _080484C6 +_0804813A: + bl IsLinkPlayerDataExchangeComplete + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08048148 + b _080484C6 +_08048148: + bl calc_player_party_count + ldr r1, _08048158 + ldr r2, _0804815C + adds r1, r2 + b _08048498 + .align 2, 0 +_08048154: .4byte 0x03002fa4 +_08048158: .4byte 0x03001770 +_0804815C: .4byte 0x0000043c +_08048160: + bl sub_8048D44 + lsls r0, 24 + cmp r0, 0 + bne _0804816C + b _080484C6 +_0804816C: + bl sub_804AF84 + b _08048492 +_08048172: + bl calc_enemy_party_count + ldr r4, _08048294 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0x1D + str r1, [sp] + movs r1, 0x13 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillWindowRect_DefaultPalette + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r0, [r4] + ldr r1, _08048298 + ldrb r1, [r1] + adds r0, 0x42 + strb r1, [r0] + ldr r0, [r4] + ldr r1, _0804829C + ldrb r1, [r1] + adds r0, 0x43 + strb r1, [r0] + movs r6, 0 + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + cmp r6, r0 + bge _08048216 + mov r8, r4 + ldr r7, _080482A0 +_080481BA: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _080482A4 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + bl PokemonGetField + ldrb r2, [r7] + lsls r2, 19 + movs r1, 0xE0 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + ldrb r3, [r7, 0x1] + lsls r3, 19 + ldr r1, _080482A8 + adds r3, r1 + asrs r3, 16 + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + adds r0, r5, 0 + ldr r1, _080482AC + bl sub_809D2FC + mov r2, r8 + ldr r1, [r2] + adds r1, 0x34 + adds r1, r6 + strb r0, [r1] + adds r7, 0x2 + adds r6, 0x1 + ldr r0, [r2] + adds r0, 0x42 + ldrb r0, [r0] + cmp r6, r0 + blt _080481BA +_08048216: + movs r6, 0 + ldr r1, _08048294 + ldr r0, [r1] + adds r0, 0x43 + ldrb r0, [r0] + cmp r6, r0 + bge _0804828A + ldr r0, _080482A0 + mov r8, r1 + adds r7, r0, 0 + adds r7, 0xC +_0804822C: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _080482B0 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + bl PokemonGetField + ldrb r2, [r7] + lsls r2, 19 + movs r3, 0xE0 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + ldrb r3, [r7, 0x1] + lsls r3, 19 + ldr r1, _080482A8 + adds r3, r1 + asrs r3, 16 + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + adds r0, r5, 0 + ldr r1, _080482AC + bl sub_809D2FC + mov r2, r8 + ldr r1, [r2] + adds r1, 0x3A + adds r1, r6 + strb r0, [r1] + adds r7, 0x2 + adds r6, 0x1 + ldr r0, [r2] + adds r0, 0x43 + ldrb r0, [r0] + cmp r6, r0 + blt _0804822C +_0804828A: + movs r0, 0x2 + movs r1, 0 + bl nullsub_5 + b _08048492 + .align 2, 0 +_08048294: .4byte 0x03004824 +_08048298: .4byte 0x03004350 +_0804829C: .4byte 0x030045b8 +_080482A0: .4byte gUnknown_0820C29C +_080482A4: .4byte 0x03004360 +_080482A8: .4byte 0xfff40000 +_080482AC: .4byte sub_809D62C +_080482B0: .4byte 0x030045c0 +_080482B4: + bl sub_806DA98 + ldr r0, _080482D0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x42 + adds r1, 0x34 + movs r2, 0 + bl sub_806DB90 + ldr r1, _080482D4 + ldr r0, _080482D8 + adds r1, r0 + b _08048498 + .align 2, 0 +_080482D0: .4byte 0x03004824 +_080482D4: .4byte 0x03001770 +_080482D8: .4byte 0x0000043c +_080482DC: + ldr r0, _080482F4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x42 + adds r1, 0x34 + movs r2, 0x1 + bl sub_806DB90 + ldr r1, _080482F8 + ldr r2, _080482FC + adds r1, r2 + b _08048498 + .align 2, 0 +_080482F4: .4byte 0x03004824 +_080482F8: .4byte 0x03001770 +_080482FC: .4byte 0x0000043c +_08048300: + bl sub_8047CE8 + ldr r1, _0804831C + ldr r3, _08048320 + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, _08048324 + ldr r0, [r0] + adds r0, 0xB4 + strb r2, [r0] + b _080484C6 + .align 2, 0 +_0804831C: .4byte 0x03001770 +_08048320: .4byte 0x0000043c +_08048324: .4byte 0x03004824 +_08048328: + movs r0, 0x4 + movs r1, 0 + bl nullsub_5 + bl sub_804ABF8 + lsls r0, 24 + cmp r0, 0 + bne _0804833C + b _080484C6 +_0804833C: + ldr r1, _08048344 + ldr r0, _08048348 + adds r1, r0 + b _08048498 + .align 2, 0 +_08048344: .4byte 0x03001770 +_08048348: .4byte 0x0000043c +_0804834C: + bl sub_8047D58 + ldr r1, _08048358 + ldr r2, _0804835C + adds r1, r2 + b _08048498 + .align 2, 0 +_08048358: .4byte 0x03001770 +_0804835C: .4byte 0x0000043c +_08048360: + bl sub_8047E44 + ldr r0, _080483A4 + ldr r2, _080483A8 + ldrb r1, [r2] + lsls r1, 19 + movs r3, 0x80 + lsls r3, 14 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2, 0x1] + lsls r2, 3 + movs r3, 0x2 + bl CreateSprite + ldr r2, _080483AC + ldr r1, [r2] + adds r1, 0x40 + movs r3, 0 + strb r0, [r1] + ldr r0, [r2] + adds r0, 0x41 + strb r3, [r0] + ldr r1, _080483B0 + ldr r0, _080483B4 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x6 + movs r1, 0 + bl nullsub_5 + b _080484C6 + .align 2, 0 +_080483A4: .4byte gSpriteTemplate_820C134 +_080483A8: .4byte gUnknown_0820C29C +_080483AC: .4byte 0x03004824 +_080483B0: .4byte 0x03001770 +_080483B4: .4byte 0x0000043c +_080483B8: + movs r0, 0 + bl sub_804ACF4 + movs r0, 0 + bl sub_804A41C + ldr r2, _080483F0 + ldr r0, [r2] + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, 0x1] + bl sub_8048C70 + ldr r1, _080483F4 + ldr r2, _080483F8 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x7 + movs r1, 0 + bl nullsub_5 + ldr r0, _080483FC + bl sub_8075474 + b _080484C6 + .align 2, 0 +_080483F0: .4byte 0x03004824 +_080483F4: .4byte 0x03001770 +_080483F8: .4byte 0x0000043c +_080483FC: .4byte 0x000001b3 +_08048400: + movs r0, 0x1 + bl sub_804ACF4 + movs r0, 0x1 + bl sub_804A41C + ldr r1, _08048428 + ldr r3, _0804842C + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08048418: + movs r0, 0 + bl sub_8048B0C + ldr r1, _08048428 + ldr r0, _0804842C + adds r1, r0 + b _08048498 + .align 2, 0 +_08048428: .4byte 0x03001770 +_0804842C: .4byte 0x0000043c +_08048430: + movs r0, 0x1 + bl sub_8048B0C + ldr r1, _08048440 + ldr r2, _08048444 + adds r1, r2 + b _08048498 + .align 2, 0 +_08048440: .4byte 0x03001770 +_08048444: .4byte 0x0000043c +_08048448: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08048492 +_0804845A: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804846C + adds r1, r3, r0 + b _08048498 + .align 2, 0 +_0804846C: .4byte 0x0000043c +_08048470: + movs r0, 0 + bl sub_804AE3C + ldr r1, _08048480 + ldr r2, _08048484 + adds r1, r2 + b _08048498 + .align 2, 0 +_08048480: .4byte 0x03001770 +_08048484: .4byte 0x0000043c +_08048488: + movs r0, 0x1 + bl sub_804AE3C + bl sub_804AF10 +_08048492: + ldr r1, _080484A0 + ldr r3, _080484A4 + adds r1, r3 +_08048498: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080484C6 + .align 2, 0 +_080484A0: .4byte 0x03001770 +_080484A4: .4byte 0x0000043c +_080484A8: + ldr r0, _080484E4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080484C6 + ldr r0, _080484E8 + str r0, [r3] + ldr r0, _080484EC + bl SetMainCallback2 + ldr r0, _080484F0 + strb r4, [r0] +_080484C6: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080484E4: .4byte 0x0202f388 +_080484E8: .4byte sub_80494D8 +_080484EC: .4byte sub_8048AB4 +_080484F0: .4byte 0x03000508 + thumb_func_end sub_8047EC0 + + thumb_func_start sub_80484F4 +sub_80484F4: @ 80484F4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r1, _08048518 + ldr r2, _0804851C + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x15 + bls _0804850C + b _080489CA +_0804850C: + lsls r0, 2 + ldr r1, _08048520 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048518: .4byte 0x03001770 +_0804851C: .4byte 0x0000043c +_08048520: .4byte _08048524 + .align 2, 0 +_08048524: + .4byte _0804857C + .4byte _0804865C + .4byte _08048668 + .4byte _08048674 + .4byte _08048680 + .4byte _08048694 + .4byte _080486A0 + .4byte _080487E8 + .4byte _08048810 + .4byte _08048834 + .4byte _0804885C + .4byte _08048880 + .4byte _08048894 + .4byte _080489CA + .4byte _080489CA + .4byte _08048914 + .4byte _0804891C + .4byte _08048950 + .4byte _08048970 + .4byte _08048988 + .4byte _08048994 + .4byte _080489B0 +_0804857C: + ldr r5, _08048630 + ldr r6, _08048634 + str r6, [r5] + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, [r5] + adds r0, 0xC8 + ldr r1, _08048638 + bl sub_804A964 + ldr r0, _0804863C + bl SetVBlankCallback + ldr r0, _08048640 + bl sub_8071C4C + ldr r4, _08048644 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, [r5] + adds r0, 0x4 + adds r1, r4, 0 + bl InitWindowFromConfig + movs r0, 0x14 + bl sub_8064EF4 + ldr r1, [r5] + adds r1, 0x7A + movs r4, 0 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0x4 + bl sub_8064F08 + bl sub_8071EF4 + bl sub_809D51C + ldr r0, [r5] + adds r0, 0x75 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x7B + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x7C + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x80 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x81 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x86 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x87 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0xB4 + strb r4, [r0] + ldr r0, _08048648 + strb r4, [r0] + ldr r1, _0804864C + ldr r3, _08048650 + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, _08048654 + movs r5, 0xD8 + lsls r5, 7 + adds r6, r5 + adds r0, r1, 0 + adds r0, 0x30 + ldr r2, _08048658 +_08048622: + str r6, [r0] + adds r6, r2 + subs r0, 0x4 + cmp r0, r1 + bge _08048622 + b _080489CA + .align 2, 0 +_08048630: .4byte 0x03004824 +_08048634: .4byte 0x02017000 +_08048638: .4byte 0x06002800 +_0804863C: .4byte sub_80489F4 +_08048640: .4byte gWindowConfig_81E6CE4 +_08048644: .4byte gWindowConfig_81E6F84 +_08048648: .4byte 0x03000508 +_0804864C: .4byte 0x03001770 +_08048650: .4byte 0x0000043c +_08048654: .4byte 0x020296cc +_08048658: .4byte 0xffffff00 +_0804865C: + ldr r0, _08048664 + adds r1, r2, r0 + b _0804883E + .align 2, 0 +_08048664: .4byte 0x0000043c +_08048668: + ldr r3, _08048670 + adds r1, r2, r3 + b _0804899E + .align 2, 0 +_08048670: .4byte 0x0000043c +_08048674: + ldr r5, _0804867C + adds r1, r2, r5 + b _0804899E + .align 2, 0 +_0804867C: .4byte 0x0000043c +_08048680: + bl calc_player_party_count + ldr r1, _0804868C + ldr r0, _08048690 + adds r1, r0 + b _0804899E + .align 2, 0 +_0804868C: .4byte 0x03001770 +_08048690: .4byte 0x0000043c +_08048694: + ldr r3, _0804869C + adds r1, r2, r3 + b _0804899E + .align 2, 0 +_0804869C: .4byte 0x0000043c +_080486A0: + bl calc_enemy_party_count + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r4, _080487C0 + ldr r0, [r4] + ldr r1, _080487C4 + ldrb r1, [r1] + adds r0, 0x42 + strb r1, [r0] + ldr r0, [r4] + ldr r1, _080487C8 + ldrb r1, [r1] + adds r0, 0x43 + strb r1, [r0] + movs r0, 0 + bl sub_804A41C + movs r0, 0x1 + bl sub_804A41C + movs r6, 0 + ldr r0, [r4] + adds r0, 0x42 + ldrb r0, [r0] + cmp r6, r0 + bge _0804873C + mov r8, r4 + ldr r7, _080487CC +_080486DE: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _080487D0 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + bl PokemonGetField + ldrb r2, [r7] + lsls r2, 19 + movs r1, 0xE0 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + ldrb r3, [r7, 0x1] + lsls r3, 19 + ldr r1, _080487D4 + adds r3, r1 + asrs r3, 16 + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + adds r0, r5, 0 + ldr r1, _080487D8 + bl sub_809D2FC + mov r2, r8 + ldr r1, [r2] + adds r1, 0x34 + adds r1, r6 + strb r0, [r1] + adds r7, 0x2 + adds r6, 0x1 + ldr r0, [r2] + adds r0, 0x42 + ldrb r0, [r0] + cmp r6, r0 + blt _080486DE +_0804873C: + movs r6, 0 + ldr r1, _080487C0 + ldr r0, [r1] + adds r0, 0x43 + ldrb r0, [r0] + cmp r6, r0 + bge _080487B0 + ldr r0, _080487CC + mov r8, r1 + adds r7, r0, 0 + adds r7, 0xC +_08048752: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _080487DC + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + bl PokemonGetField + ldrb r2, [r7] + lsls r2, 19 + movs r3, 0xE0 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + ldrb r3, [r7, 0x1] + lsls r3, 19 + ldr r1, _080487D4 + adds r3, r1 + asrs r3, 16 + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + adds r0, r5, 0 + ldr r1, _080487D8 + bl sub_809D2FC + mov r2, r8 + ldr r1, [r2] + adds r1, 0x3A + adds r1, r6 + strb r0, [r1] + adds r7, 0x2 + adds r6, 0x1 + ldr r0, [r2] + adds r0, 0x43 + ldrb r0, [r0] + cmp r6, r0 + blt _08048752 +_080487B0: + movs r0, 0x2 + movs r1, 0 + bl nullsub_5 + ldr r1, _080487E0 + ldr r3, _080487E4 + adds r1, r3 + b _0804899E + .align 2, 0 +_080487C0: .4byte 0x03004824 +_080487C4: .4byte 0x03004350 +_080487C8: .4byte 0x030045b8 +_080487CC: .4byte gUnknown_0820C29C +_080487D0: .4byte 0x03004360 +_080487D4: .4byte 0xfff40000 +_080487D8: .4byte sub_809D62C +_080487DC: .4byte 0x030045c0 +_080487E0: .4byte 0x03001770 +_080487E4: .4byte 0x0000043c +_080487E8: + bl sub_806DA98 + ldr r0, _08048804 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x42 + adds r1, 0x34 + movs r2, 0 + bl sub_806DB90 + ldr r1, _08048808 + ldr r5, _0804880C + adds r1, r5 + b _0804899E + .align 2, 0 +_08048804: .4byte 0x03004824 +_08048808: .4byte 0x03001770 +_0804880C: .4byte 0x0000043c +_08048810: + ldr r0, _08048828 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x42 + adds r1, 0x34 + movs r2, 0x1 + bl sub_806DB90 + ldr r1, _0804882C + ldr r0, _08048830 + adds r1, r0 + b _0804899E + .align 2, 0 +_08048828: .4byte 0x03004824 +_0804882C: .4byte 0x03001770 +_08048830: .4byte 0x0000043c +_08048834: + bl sub_8047CE8 + ldr r1, _08048850 + ldr r2, _08048854 + adds r1, r2 +_0804883E: + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, _08048858 + ldr r0, [r0] + adds r0, 0xB4 + strb r2, [r0] + b _080489CA + .align 2, 0 +_08048850: .4byte 0x03001770 +_08048854: .4byte 0x0000043c +_08048858: .4byte 0x03004824 +_0804885C: + movs r0, 0x4 + movs r1, 0 + bl nullsub_5 + bl sub_804ABF8 + lsls r0, 24 + cmp r0, 0 + bne _08048870 + b _080489CA +_08048870: + ldr r1, _08048878 + ldr r3, _0804887C + adds r1, r3 + b _0804899E + .align 2, 0 +_08048878: .4byte 0x03001770 +_0804887C: .4byte 0x0000043c +_08048880: + bl sub_8047D58 + ldr r1, _0804888C + ldr r5, _08048890 + adds r1, r5 + b _0804899E + .align 2, 0 +_0804888C: .4byte 0x03001770 +_08048890: .4byte 0x0000043c +_08048894: + bl sub_8047E44 + ldr r2, _080488AC + ldr r0, _080488B0 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x41 + ldrb r0, [r1] + cmp r0, 0x5 + bhi _080488B4 + ldrb r0, [r2, 0x9] + b _080488B8 + .align 2, 0 +_080488AC: .4byte 0x02018000 +_080488B0: .4byte 0x03004824 +_080488B4: + ldrb r0, [r2, 0x9] + adds r0, 0x6 +_080488B8: + strb r0, [r1] + ldr r0, _08048900 + ldr r3, _08048904 + ldr r4, _08048908 + ldr r1, [r4] + adds r1, 0x41 + ldrb r2, [r1] + lsls r2, 1 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, 19 + movs r5, 0x80 + lsls r5, 14 + adds r1, r5 + asrs r1, 16 + adds r3, 0x1 + adds r2, r3 + ldrb r2, [r2] + lsls r2, 3 + movs r3, 0x2 + bl CreateSprite + ldr r1, [r4] + adds r1, 0x40 + strb r0, [r1] + ldr r0, _0804890C + ldr r1, _08048910 + adds r0, r1 + movs r1, 0xF + strb r1, [r0] + movs r0, 0x6 + movs r1, 0 + bl nullsub_5 + b _080489CA + .align 2, 0 +_08048900: .4byte gSpriteTemplate_820C134 +_08048904: .4byte gUnknown_0820C29C +_08048908: .4byte 0x03004824 +_0804890C: .4byte 0x03001770 +_08048910: .4byte 0x0000043c +_08048914: + movs r0, 0 + bl sub_8048B0C + b _08048998 +_0804891C: + movs r0, 0x1 + bl sub_8048B0C + ldr r2, _08048944 + ldr r0, [r2] + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, 0x1] + bl sub_8048C70 + movs r0, 0x7 + movs r1, 0 + bl nullsub_5 + ldr r1, _08048948 + ldr r3, _0804894C + adds r1, r3 + b _0804899E + .align 2, 0 +_08048944: .4byte 0x03004824 +_08048948: .4byte 0x03001770 +_0804894C: .4byte 0x0000043c +_08048950: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _08048968 + ldr r5, _0804896C + adds r1, r5 + b _0804899E + .align 2, 0 +_08048968: .4byte 0x03001770 +_0804896C: .4byte 0x0000043c +_08048970: + movs r1, 0x80 + lsls r1, 19 + movs r3, 0xFA + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r5, _08048984 + adds r1, r2, r5 + b _0804899E + .align 2, 0 +_08048984: .4byte 0x0000043c +_08048988: + ldr r0, _08048990 + adds r1, r2, r0 + b _0804899E + .align 2, 0 +_08048990: .4byte 0x0000043c +_08048994: + bl sub_804AF10 +_08048998: + ldr r1, _080489A8 + ldr r2, _080489AC + adds r1, r2 +_0804899E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080489CA + .align 2, 0 +_080489A8: .4byte 0x03001770 +_080489AC: .4byte 0x0000043c +_080489B0: + ldr r0, _080489E8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080489CA + ldr r0, _080489EC + bl SetMainCallback2 + ldr r0, _080489F0 + strb r4, [r0] +_080489CA: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080489E8: .4byte 0x0202f388 +_080489EC: .4byte sub_8048AB4 +_080489F0: .4byte 0x03000508 + thumb_func_end sub_80484F4 + + thumb_func_start sub_80489F4 +sub_80489F4: @ 80489F4 + push {lr} + ldr r0, _08048A10 + ldr r0, [r0] + adds r0, 0xC8 + bl sub_804A940 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_08048A10: .4byte 0x03004824 + thumb_func_end sub_80489F4 + + thumb_func_start sub_8048A14 +sub_8048A14: @ 8048A14 + push {r4,lr} + sub sp, 0x4 + ldr r4, _08048A4C + ldr r1, [r4] + adds r1, 0xB4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xF + bls _08048A44 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0xA + strb r1, [r0] +_08048A44: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048A4C: .4byte 0x03004824 + thumb_func_end sub_8048A14 + + thumb_func_start sub_8048A50 +sub_8048A50: @ 8048A50 + push {r4,lr} + ldr r0, _08048A84 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08048A7E + ldr r2, _08048A88 + ldr r4, _08048A8C + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x41 + ldrb r1, [r1] + strb r1, [r2] + adds r0, 0x8A + ldrb r0, [r0] + strb r0, [r2, 0x1] + bl sub_800832C + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0xD + strb r1, [r0] +_08048A7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048A84: .4byte 0x0202f388 +_08048A88: .4byte 0x020297d8 +_08048A8C: .4byte 0x03004824 + thumb_func_end sub_8048A50 + + thumb_func_start sub_8048A90 +sub_8048A90: @ 8048A90 + push {lr} + ldr r0, _08048AA8 + ldrb r1, [r0] + cmp r1, 0 + bne _08048AA4 + ldr r0, _08048AAC + str r1, [r0] + ldr r0, _08048AB0 + bl SetMainCallback2 +_08048AA4: + pop {r0} + bx r0 + .align 2, 0 +_08048AA8: .4byte 0x03002fa4 +_08048AAC: .4byte 0x03001770 +_08048AB0: .4byte sub_804B41C + thumb_func_end sub_8048A90 + + thumb_func_start sub_8048AB4 +sub_8048AB4: @ 8048AB4 + push {r4,lr} + bl sub_8049DE0 + bl sub_804AB30 + movs r0, 0 + bl sub_8049ED4 + movs r0, 0x1 + bl sub_8049ED4 + ldr r4, _08048B04 + ldr r3, _08048B08 + ldr r2, [r3] + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + adds r4, 0x4 + ldr r2, [r3] + ldrb r0, [r2, 0x1] + adds r1, r0, 0 + adds r1, 0xFF + strb r1, [r2, 0x1] + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048B04: .4byte 0x04000018 +_08048B08: .4byte 0x03004824 + thumb_func_end sub_8048AB4 + + thumb_func_start sub_8048B0C +sub_8048B0C: @ 8048B0C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08048B1C + cmp r0, 0x1 + beq _08048BD0 + b _08048C3A +_08048B1C: + ldr r5, _08048BA0 + ldr r0, _08048BA4 + mov r12, r0 + ldr r1, _08048BA8 + ldr r4, _08048BAC + ldr r3, _08048BB0 + movs r2, 0x2F +_08048B2A: + ldrh r0, [r1] + strh r0, [r3] + ldrh r0, [r1] + strh r0, [r4] + adds r1, 0x2 + adds r4, 0x2 + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08048B2A + adds r3, r5, 0 + movs r4, 0xC0 + lsls r4, 19 + movs r5, 0x94 + lsls r5, 5 + ldr r1, _08048BB4 + ldr r6, _08048BB8 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_08048B54: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _08048B54 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r2, 0 + ldr r5, _08048BBC + ldr r4, _08048BC0 + ldr r3, _08048BC4 +_08048B7A: + ldr r0, [r4] + lsls r1, r2, 1 + adds r0, 0xDA + adds r0, r1 + ldrh r1, [r3] + strh r1, [r0] + adds r3, 0x2 + adds r2, 0x1 + cmp r2, r5 + ble _08048B7A + ldr r1, _08048BC8 + ldr r0, _08048BB4 + mov r2, r12 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _08048BCC + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _08048C3A + .align 2, 0 +_08048BA0: .4byte gUnknown_08EA0348 +_08048BA4: .4byte gUnknown_0820AFEC +_08048BA8: .4byte gUnknown_08EA02C8 +_08048BAC: .4byte 0x0202eec8 +_08048BB0: .4byte 0x0202eac8 +_08048BB4: .4byte 0x040000d4 +_08048BB8: .4byte 0x80000800 +_08048BBC: .4byte 0x000003ff +_08048BC0: .4byte 0x03004824 +_08048BC4: .4byte gUnknown_08EA15C8 +_08048BC8: .4byte 0x06003000 +_08048BCC: .4byte 0x80000400 +_08048BD0: + ldr r1, _08048C40 + ldr r2, _08048C44 + ldr r0, _08048C48 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08048C4C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + movs r0, 0 + bl sub_804A6DC + movs r0, 0x1 + bl sub_804A6DC + ldr r0, _08048C50 + ldr r0, [r0] + adds r0, 0xC8 + bl sub_804A938 + ldr r2, _08048C54 + ldrh r1, [r2] + ldr r0, _08048C58 + ands r0, r1 + strh r0, [r2] + ldr r1, _08048C5C + ldr r2, _08048C60 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08048C64 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08048C68 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08048C6C + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0xA + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] +_08048C3A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048C40: .4byte gUnknown_0820B7EC +_08048C44: .4byte 0x06003800 +_08048C48: .4byte 0x040000d4 +_08048C4C: .4byte 0x80000400 +_08048C50: .4byte 0x03004824 +_08048C54: .4byte 0x04000008 +_08048C58: .4byte 0x0000fffc +_08048C5C: .4byte 0x0400000a +_08048C60: .4byte 0x00000501 +_08048C64: .4byte 0x00000602 +_08048C68: .4byte 0x00000703 +_08048C6C: .4byte 0x04000010 + thumb_func_end sub_8048B0C + + thumb_func_start sub_8048C70 +sub_8048C70: @ 8048C70 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r3, 0 + ldr r5, _08048CC0 + mov r8, r5 + ldr r0, _08048CC4 + mov r12, r0 + movs r1, 0x5 + negs r1, r1 + mov r9, r1 + movs r4, 0x6 + movs r7, 0x1 + movs r6, 0 +_08048C8E: + mov r1, r8 + ldr r0, [r1] + adds r1, r0, 0 + adds r1, 0x42 + ldrb r1, [r1] + cmp r3, r1 + bge _08048CC8 + adds r0, 0x34 + adds r0, r3 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r9 + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0x44 + adds r0, r3 + strb r7, [r0] + b _08048CCE + .align 2, 0 +_08048CC0: .4byte 0x03004824 +_08048CC4: .4byte 0x02020004 +_08048CC8: + adds r0, 0x44 + adds r0, r3 + strb r6, [r0] +_08048CCE: + mov r1, r8 + ldr r0, [r1] + adds r1, r0, 0 + adds r1, 0x43 + ldrb r1, [r1] + cmp r3, r1 + bge _08048CFE + adds r0, 0x3A + adds r0, r3 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r9 + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0x44 + adds r0, r4 + strb r7, [r0] + b _08048D04 +_08048CFE: + adds r0, 0x44 + adds r0, r4 + strb r6, [r0] +_08048D04: + adds r4, 0x1 + adds r3, 0x1 + cmp r3, 0x5 + ble _08048C8E + ldr r0, [r5] + adds r0, 0x50 + movs r1, 0x1 + strb r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8048C70 + + thumb_func_start nullsub_5 +nullsub_5: @ 8048D20 + bx lr + thumb_func_end nullsub_5 + + thumb_func_start sub_8048D24 +sub_8048D24: @ 8048D24 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r3, 0 + cmp r3, r2 + bcs _08048D3E +_08048D30: + adds r0, r5, r3 + adds r1, r4, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, 0x1 + cmp r3, r2 + bcc _08048D30 +_08048D3E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8048D24 + + thumb_func_start sub_8048D44 +sub_8048D44: @ 8048D44 + push {r4-r7,lr} + sub sp, 0xC + bl GetMultiplayerId + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, _08048D90 + ldr r0, [r6] + adds r0, 0x75 + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0x64 + bl __udivsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x64 + bl __umodsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl SetLinkDebugValues + ldr r0, [r6] + adds r0, 0x75 + ldrb r0, [r0] + cmp r0, 0x10 + bls _08048D86 + b _0804907C +_08048D86: + lsls r0, 2 + ldr r1, _08048D94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048D90: .4byte 0x03004824 +_08048D94: .4byte _08048D98 + .align 2, 0 +_08048D98: + .4byte _08048DDC + .4byte _08048DF8 + .4byte _08048E28 + .4byte _08048E3C + .4byte _08048E74 + .4byte _08048E90 + .4byte _08048EA4 + .4byte _08048EDC + .4byte _08048EF8 + .4byte _08048F0C + .4byte _08048F44 + .4byte _08048F60 + .4byte _08048F74 + .4byte _08048FAC + .4byte _08048FC8 + .4byte _08048FDC + .4byte _08049018 +_08048DDC: + ldr r0, _08048DEC + ldr r1, _08048DF0 + movs r2, 0xC8 + bl sub_8048D24 + ldr r0, _08048DF4 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048DEC: .4byte 0x03002a70 +_08048DF0: .4byte 0x03004360 +_08048DF4: .4byte 0x03004824 +_08048DF8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _08048E04 + b _0804907C +_08048E04: + bl GetBlockRecievedStatus + lsls r0, 24 + cmp r0, 0 + bne _08048E18 + ldr r0, _08048E14 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048E14: .4byte 0x03004824 +_08048E18: + bl ResetBlockReceivedFlags + ldr r0, _08048E24 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048E24: .4byte 0x03004824 +_08048E28: + cmp r7, 0 + bne _08048E32 + movs r0, 0x1 + bl sub_8007E9C +_08048E32: + ldr r0, _08048E38 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048E38: .4byte 0x03004824 +_08048E3C: + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08048E4A + b _0804907C +_08048E4A: + ldr r0, _08048E68 + movs r2, 0x1 + adds r1, r7, 0 + eors r1, r2 + lsls r1, 8 + ldr r2, _08048E6C + adds r1, r2 + movs r2, 0xC8 + bl sub_8048D24 + bl ResetBlockReceivedFlags + ldr r0, _08048E70 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048E68: .4byte 0x030045c0 +_08048E6C: .4byte 0x03002b80 +_08048E70: .4byte 0x03004824 +_08048E74: + ldr r0, _08048E84 + ldr r1, _08048E88 + movs r2, 0xC8 + bl sub_8048D24 + ldr r0, _08048E8C + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048E84: .4byte 0x03002a70 +_08048E88: .4byte 0x03004428 +_08048E8C: .4byte 0x03004824 +_08048E90: + cmp r7, 0 + bne _08048E9A + movs r0, 0x1 + bl sub_8007E9C +_08048E9A: + ldr r0, _08048EA0 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048EA0: .4byte 0x03004824 +_08048EA4: + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08048EB2 + b _0804907C +_08048EB2: + ldr r0, _08048ED0 + movs r2, 0x1 + adds r1, r7, 0 + eors r1, r2 + lsls r1, 8 + ldr r2, _08048ED4 + adds r1, r2 + movs r2, 0xC8 + bl sub_8048D24 + bl ResetBlockReceivedFlags + ldr r0, _08048ED8 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048ED0: .4byte 0x03004688 +_08048ED4: .4byte 0x03002b80 +_08048ED8: .4byte 0x03004824 +_08048EDC: + ldr r0, _08048EEC + ldr r1, _08048EF0 + movs r2, 0xC8 + bl sub_8048D24 + ldr r0, _08048EF4 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048EEC: .4byte 0x03002a70 +_08048EF0: .4byte 0x030044f0 +_08048EF4: .4byte 0x03004824 +_08048EF8: + cmp r7, 0 + bne _08048F02 + movs r0, 0x1 + bl sub_8007E9C +_08048F02: + ldr r0, _08048F08 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048F08: .4byte 0x03004824 +_08048F0C: + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08048F1A + b _0804907C +_08048F1A: + ldr r0, _08048F38 + movs r2, 0x1 + adds r1, r7, 0 + eors r1, r2 + lsls r1, 8 + ldr r2, _08048F3C + adds r1, r2 + movs r2, 0xC8 + bl sub_8048D24 + bl ResetBlockReceivedFlags + ldr r0, _08048F40 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048F38: .4byte 0x03004750 +_08048F3C: .4byte 0x03002b80 +_08048F40: .4byte 0x03004824 +_08048F44: + ldr r0, _08048F54 + ldr r1, _08048F58 + movs r2, 0xDC + bl sub_8048D24 + ldr r0, _08048F5C + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048F54: .4byte 0x03002a70 +_08048F58: .4byte 0x02028280 +_08048F5C: .4byte 0x03004824 +_08048F60: + cmp r7, 0 + bne _08048F6A + movs r0, 0x3 + bl sub_8007E9C +_08048F6A: + ldr r0, _08048F70 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048F70: .4byte 0x03004824 +_08048F74: + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08048F82 + b _0804907C +_08048F82: + ldr r0, _08048FA0 + movs r2, 0x1 + adds r1, r7, 0 + eors r1, r2 + lsls r1, 8 + ldr r2, _08048FA4 + adds r1, r2 + movs r2, 0xD8 + bl sub_8048D24 + bl ResetBlockReceivedFlags + ldr r0, _08048FA8 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048FA0: .4byte 0x02029700 +_08048FA4: .4byte 0x03002b80 +_08048FA8: .4byte 0x03004824 +_08048FAC: + ldr r0, _08048FBC + ldr r1, _08048FC0 + movs r2, 0xB + bl sub_8048D24 + ldr r0, _08048FC4 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048FBC: .4byte 0x03002a70 +_08048FC0: .4byte 0x02028844 +_08048FC4: .4byte 0x03004824 +_08048FC8: + cmp r7, 0 + bne _08048FD2 + movs r0, 0x4 + bl sub_8007E9C +_08048FD2: + ldr r0, _08048FD8 + ldr r1, [r0] + b _08049006 + .align 2, 0 +_08048FD8: .4byte 0x03004824 +_08048FDC: + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _0804907C + ldr r4, _08049010 + ldr r0, [r4] + adds r0, 0xB5 + movs r2, 0x1 + adds r1, r7, 0 + eors r1, r2 + lsls r1, 8 + ldr r2, _08049014 + adds r1, r2 + movs r2, 0xB + bl sub_8048D24 + bl ResetBlockReceivedFlags + ldr r1, [r4] +_08049006: + adds r1, 0x75 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804907C + .align 2, 0 +_08049010: .4byte 0x03004824 +_08049014: .4byte 0x03002b80 +_08049018: + ldr r4, _0804906C + ldr r6, _08049070 + movs r5, 0x5 +_0804901E: + adds r0, r4, 0 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _0804905E + cmp r0, r6 + bne _0804905E + adds r0, r4, 0 + movs r1, 0x3 + bl PokemonGetField + cmp r0, 0x1 + beq _0804905E + adds r0, r4, 0 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + mov r0, sp + ldr r1, _08049074 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _0804905E + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, _08049078 + bl pokemon_setattr +_0804905E: + adds r4, 0x64 + subs r5, 0x1 + cmp r5, 0 + bge _0804901E + movs r0, 0x1 + b _0804907E + .align 2, 0 +_0804906C: .4byte 0x030045c0 +_08049070: .4byte 0x0000012f +_08049074: .4byte gUnknown_0820C3B0 +_08049078: .4byte gSpeciesNames + 0xD05 +_0804907C: + movs r0, 0 +_0804907E: + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8048D44 + + thumb_func_start sub_8049088 +sub_8049088: @ 8049088 + push {lr} + sub sp, 0x1C + ldr r1, _080490B0 + mov r0, sp + bl StringCopy + ldr r0, _080490B4 + ldr r0, [r0] + adds r0, 0x7E + ldrh r1, [r0] + lsls r1, 5 + ldr r0, _080490B8 + adds r1, r0 + mov r0, sp + movs r2, 0x14 + bl sub_804ACD8 + add sp, 0x1C + pop {r0} + bx r0 + .align 2, 0 +_080490B0: .4byte gUnknown_0842C7B6 +_080490B4: .4byte 0x03004824 +_080490B8: .4byte 0x06010000 + thumb_func_end sub_8049088 + + thumb_func_start sub_80490BC +sub_80490BC: @ 80490BC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + movs r3, 0x1 + adds r0, r4, 0 + ands r0, r3 + cmp r0, 0 + beq _08049148 + ldr r1, _080490EC + lsls r0, r2, 8 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _080490F0 + cmp r1, r0 + beq _08049128 + cmp r1, r0 + bgt _080490F8 + ldr r0, _080490F4 + cmp r1, r0 + beq _08049118 + b _08049142 + .align 2, 0 +_080490EC: .4byte 0x03002b80 +_080490F0: .4byte 0x0000bbbb +_080490F4: .4byte 0x0000aabb +_080490F8: + ldr r0, _0804910C + cmp r1, r0 + beq _08049138 + ldr r0, _08049110 + cmp r1, r0 + bne _08049142 + ldr r0, _08049114 + ldr r0, [r0] + adds r0, 0x84 + b _0804913E + .align 2, 0 +_0804910C: .4byte 0x0000bbcc +_08049110: .4byte 0x0000eeaa +_08049114: .4byte 0x03004824 +_08049118: + ldr r0, _08049124 + ldr r0, [r0] + adds r0, 0x84 + strb r3, [r0] + b _08049142 + .align 2, 0 +_08049124: .4byte 0x03004824 +_08049128: + ldr r0, _08049134 + ldr r0, [r0] + adds r0, 0x86 + strb r3, [r0] + b _08049142 + .align 2, 0 +_08049134: .4byte 0x03004824 +_08049138: + ldr r0, _08049170 + ldr r0, [r0] + adds r0, 0x86 +_0804913E: + movs r1, 0x2 + strb r1, [r0] +_08049142: + movs r0, 0 + bl ResetBlockReceivedFlag +_08049148: + movs r2, 0x2 + adds r0, r4, 0 + ands r0, r2 + cmp r0, 0 + beq _080491DA + ldr r3, _08049174 + movs r1, 0x80 + lsls r1, 1 + adds r0, r3, r1 + ldrh r1, [r0] + ldr r0, _08049178 + cmp r1, r0 + beq _080491BC + cmp r1, r0 + bgt _08049180 + ldr r0, _0804917C + cmp r1, r0 + beq _080491A0 + b _080491D4 + .align 2, 0 +_08049170: .4byte 0x03004824 +_08049174: .4byte 0x03002b80 +_08049178: .4byte 0x0000bbbb +_0804917C: .4byte 0x0000aabb +_08049180: + ldr r0, _08049194 + cmp r1, r0 + beq _080491CC + ldr r0, _08049198 + cmp r1, r0 + bne _080491D4 + ldr r0, _0804919C + ldr r0, [r0] + adds r0, 0x85 + b _080491D2 + .align 2, 0 +_08049194: .4byte 0x0000bbcc +_08049198: .4byte 0x0000eeaa +_0804919C: .4byte 0x03004824 +_080491A0: + ldr r2, _080491B8 + ldr r1, [r2] + movs r4, 0x81 + lsls r4, 1 + adds r0, r3, r4 + ldrb r0, [r0] + adds r0, 0x6 + adds r1, 0x8A + strb r0, [r1] + ldr r0, [r2] + adds r0, 0x85 + b _080491C2 + .align 2, 0 +_080491B8: .4byte 0x03004824 +_080491BC: + ldr r0, _080491C8 + ldr r0, [r0] + adds r0, 0x87 +_080491C2: + movs r1, 0x1 + strb r1, [r0] + b _080491D4 + .align 2, 0 +_080491C8: .4byte 0x03004824 +_080491CC: + ldr r0, _080491E0 + ldr r0, [r0] + adds r0, 0x87 +_080491D2: + strb r2, [r0] +_080491D4: + movs r0, 0x1 + bl ResetBlockReceivedFlag +_080491DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080491E0: .4byte 0x03004824 + thumb_func_end sub_80490BC + + thumb_func_start sub_80491E4 +sub_80491E4: @ 80491E4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r1, 24 + lsrs r5, r1, 24 + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + beq _080492BE + ldr r2, _08049210 + ldrh r1, [r2] + ldr r0, _08049214 + cmp r1, r0 + beq _080492A8 + cmp r1, r0 + bgt _08049220 + ldr r0, _08049218 + cmp r1, r0 + beq _08049288 + ldr r0, _0804921C + cmp r1, r0 + beq _0804925C + b _080492B8 + .align 2, 0 +_08049210: .4byte 0x03002b80 +_08049214: .4byte 0x0000ddee +_08049218: .4byte 0x0000ccdd +_0804921C: .4byte 0x0000dddd +_08049220: + ldr r0, _08049230 + cmp r1, r0 + beq _08049234 + adds r0, 0x11 + cmp r1, r0 + beq _08049258 + b _080492B8 + .align 2, 0 +_08049230: .4byte 0x0000eebb +_08049234: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0x4 + bl sub_804AA0C + ldr r0, _08049254 + ldr r0, [r0] + adds r0, 0x7B + movs r1, 0xB + b _080492B6 + .align 2, 0 +_08049254: .4byte 0x03004824 +_08049258: + movs r0, 0x5 + b _080492AA +_0804925C: + ldr r4, _08049284 + ldr r1, [r4] + ldrb r0, [r2, 0x2] + adds r0, 0x6 + adds r1, 0x8A + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x41 + ldrb r0, [r0] + bl sub_8049E9C + ldr r0, [r4] + adds r0, 0x8A + ldrb r0, [r0] + bl sub_8049E9C + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x7 + b _080492B6 + .align 2, 0 +_08049284: .4byte 0x03004824 +_08049288: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080492A4 + ldr r0, [r0] + adds r0, 0x7B + movs r1, 0xA + b _080492B6 + .align 2, 0 +_080492A4: .4byte 0x03004824 +_080492A8: + movs r0, 0x1 +_080492AA: + bl sub_804AA0C + ldr r0, _080492D4 + ldr r0, [r0] + adds r0, 0x7B + movs r1, 0x8 +_080492B6: + strb r1, [r0] +_080492B8: + movs r0, 0 + bl ResetBlockReceivedFlag +_080492BE: + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + beq _080492CC + movs r0, 0x1 + bl ResetBlockReceivedFlag +_080492CC: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080492D4: .4byte 0x03004824 + thumb_func_end sub_80491E4 + + thumb_func_start sub_80492D8 +sub_80492D8: @ 80492D8 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _08049334 + ldr r2, [r6] + adds r1, r2, 0 + adds r1, 0x84 + ldrb r0, [r1] + cmp r0, 0 + bne _080492EC + b _08049420 +_080492EC: + adds r0, r2, 0 + adds r0, 0x85 + ldrb r0, [r0] + cmp r0, 0 + bne _080492F8 + b _08049420 +_080492F8: + ldrh r1, [r1] + ldr r0, _08049338 + cmp r1, r0 + bne _08049340 + adds r1, r2, 0 + adds r1, 0x7B + movs r0, 0x6 + strb r0, [r1] + ldr r2, [r6] + adds r1, r2, 0 + adds r1, 0x8C + movs r4, 0 + ldr r0, _0804933C + strh r0, [r1] + adds r0, r2, 0 + adds r0, 0x41 + ldrb r1, [r0] + adds r0, 0x4D + strh r1, [r0] + movs r0, 0x5 + movs r1, 0 + bl sub_804AADC + ldr r0, [r6] + adds r2, r0, 0 + adds r2, 0x85 + strb r4, [r2] + adds r0, 0x84 + strb r4, [r0] + b _08049420 + .align 2, 0 +_08049334: .4byte 0x03004824 +_08049338: .4byte 0x00000101 +_0804933C: .4byte 0x0000dddd +_08049340: + ldr r0, _08049388 + cmp r1, r0 + bne _08049390 + movs r0, 0x1 + bl sub_804AA0C + ldr r1, [r6] + adds r2, r1, 0 + adds r2, 0x8C + movs r4, 0 + movs r3, 0 + ldr r0, _0804938C + strh r0, [r2] + adds r1, 0x8E + strh r3, [r1] + movs r0, 0x5 + movs r1, 0 + bl sub_804AADC + ldr r0, [r6] + adds r1, r0, 0 + adds r1, 0x87 + strb r4, [r1] + adds r0, 0x86 + strb r4, [r0] + ldr r0, [r6] + adds r1, r0, 0 + adds r1, 0x85 + strb r4, [r1] + adds r0, 0x84 + strb r4, [r0] + ldr r0, [r6] + adds r0, 0x7B + movs r1, 0x8 + b _0804941E + .align 2, 0 +_08049388: .4byte 0x00000201 +_0804938C: .4byte 0x0000eecc +_08049390: + movs r0, 0x81 + lsls r0, 1 + cmp r1, r0 + bne _080493DC + movs r0, 0x5 + bl sub_804AA0C + ldr r1, [r6] + adds r2, r1, 0 + adds r2, 0x8C + movs r4, 0 + movs r3, 0 + ldr r0, _080493D8 + strh r0, [r2] + adds r1, 0x8E + strh r3, [r1] + movs r0, 0x5 + movs r1, 0 + bl sub_804AADC + ldr r0, [r6] + adds r1, r0, 0 + adds r1, 0x87 + strb r4, [r1] + adds r0, 0x86 + strb r4, [r0] + ldr r0, [r6] + adds r1, r0, 0 + adds r1, 0x85 + strb r4, [r1] + adds r0, 0x84 + strb r4, [r0] + ldr r0, [r6] + adds r0, 0x7B + movs r1, 0x8 + b _0804941E + .align 2, 0 +_080493D8: .4byte 0x0000ddee +_080493DC: + ldr r0, _080494C0 + cmp r1, r0 + bne _08049420 + adds r1, r2, 0 + adds r1, 0x8C + movs r5, 0 + movs r4, 0 + ldr r0, _080494C4 + strh r0, [r1] + adds r0, r2, 0 + adds r0, 0x8E + strh r4, [r0] + movs r0, 0x5 + movs r1, 0 + bl sub_804AADC + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, [r6] + adds r1, r0, 0 + adds r1, 0x85 + strb r5, [r1] + adds r0, 0x84 + strb r5, [r0] + ldr r0, [r6] + adds r0, 0x7B + movs r1, 0xB +_0804941E: + strb r1, [r0] +_08049420: + ldr r5, _080494C8 + ldr r3, [r5] + adds r1, r3, 0 + adds r1, 0x86 + ldrb r0, [r1] + cmp r0, 0 + beq _080494B8 + adds r0, r3, 0 + adds r0, 0x87 + ldrb r0, [r0] + cmp r0, 0 + beq _080494B8 + ldrh r1, [r1] + ldr r0, _080494CC + cmp r1, r0 + bne _0804946E + adds r1, r3, 0 + adds r1, 0x8C + movs r4, 0 + movs r2, 0 + ldr r0, _080494D0 + strh r0, [r1] + adds r0, r3, 0 + adds r0, 0x8E + strh r2, [r0] + movs r0, 0x5 + movs r1, 0 + bl sub_804AADC + ldr r0, [r5] + adds r0, 0x86 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x87 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x7B + movs r1, 0x9 + strb r1, [r0] +_0804946E: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x86 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08049484 + adds r0, r1, 0 + adds r0, 0x87 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080494B8 +_08049484: + movs r0, 0x1 + bl sub_804AA0C + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x8C + movs r4, 0 + movs r3, 0 + ldr r0, _080494D4 + strh r0, [r2] + adds r1, 0x8E + strh r3, [r1] + movs r0, 0x5 + movs r1, 0 + bl sub_804AADC + ldr r0, [r5] + adds r0, 0x86 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x87 + strb r4, [r0] + ldr r0, [r5] + adds r0, 0x7B + movs r1, 0x8 + strb r1, [r0] +_080494B8: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080494C0: .4byte 0x00000202 +_080494C4: .4byte 0x0000eebb +_080494C8: .4byte 0x03004824 +_080494CC: .4byte 0x00000101 +_080494D0: .4byte 0x0000ccdd +_080494D4: .4byte 0x0000ddee + thumb_func_end sub_80492D8 + + thumb_func_start sub_80494D8 +sub_80494D8: @ 80494D8 + push {r4,lr} + bl GetMultiplayerId + lsls r0, 24 + lsrs r4, r0, 24 + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _08049504 + cmp r4, 0 + bne _080494FA + movs r0, 0 + bl sub_80490BC + b _08049500 +_080494FA: + adds r0, r4, 0 + bl sub_80491E4 +_08049500: + bl ResetBlockReceivedFlags +_08049504: + cmp r4, 0 + bne _0804950C + bl sub_80492D8 +_0804950C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80494D8 + + thumb_func_start sub_8049514 +sub_8049514: @ 8049514 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r6, 0 + movs r5, 0 + ldr r2, _08049548 + ldr r3, [r2] + ldr r4, _0804954C + lsls r2, r1, 1 + adds r2, r1 + lsls r2, 1 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r3, 0x44 + adds r2, r1 + adds r2, r4 +_0804953A: + ldrb r1, [r2] + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08049550 + adds r6, r1, 0 + b _08049558 + .align 2, 0 +_08049548: .4byte 0x03004824 +_0804954C: .4byte gUnknown_0820C164 +_08049550: + adds r2, 0x1 + adds r5, 0x1 + cmp r5, 0x5 + ble _0804953A +_08049558: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8049514 + + thumb_func_start sub_8049560 +sub_8049560: @ 8049560 + push {r4-r7,lr} + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r7] + bl sub_8049514 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xC + bne _080495B8 + ldr r5, _080495B0 + ldr r0, [r5] + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080495B4 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAnim + ldr r2, [r5] + adds r2, 0x40 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xE0 + strh r1, [r0, 0x20] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xA0 + strh r1, [r0, 0x22] + b _08049600 + .align 2, 0 +_080495B0: .4byte 0x03004824 +_080495B4: .4byte 0x02020004 +_080495B8: + ldr r4, _08049614 + ldr r0, [r4] + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _08049618 + adds r0, r5 + movs r1, 0 + bl StartSpriteAnim + ldr r4, [r4] + adds r4, 0x40 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldr r2, _0804961C + lsls r3, r6, 1 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r0, 0x20 + strh r0, [r1, 0x20] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r2, 0x1 + adds r3, r2 + ldrb r0, [r3] + lsls r0, 3 + strh r0, [r1, 0x22] +_08049600: + ldrb r0, [r7] + cmp r0, r6 + beq _0804960C + movs r0, 0x5 + bl audio_play +_0804960C: + strb r6, [r7] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08049614: .4byte 0x03004824 +_08049618: .4byte 0x02020004 +_0804961C: .4byte gUnknown_0820C29C + thumb_func_end sub_8049560 + + thumb_func_start sub_8049620 +sub_8049620: @ 8049620 + push {r4,lr} + movs r0, 0 + bl sub_804AA0C + ldr r4, _08049668 + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x5 + strb r1, [r0] + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08049670 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x8C + ldr r0, _0804966C + strh r0, [r1] + adds r0, r2, 0 + adds r0, 0x41 + ldrb r1, [r0] + adds r0, 0x4D + strh r1, [r0] + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + adds r1, 0x8C + movs r2, 0x14 + bl SendBlock + b _08049678 + .align 2, 0 +_08049668: .4byte 0x03004824 +_0804966C: .4byte 0x0000aabb +_08049670: + ldr r0, [r4] + adds r0, 0x84 + movs r1, 0x1 + strb r1, [r0] +_08049678: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8049620 + + thumb_func_start sub_8049680 +sub_8049680: @ 8049680 + push {r4,lr} + sub sp, 0x8 + ldr r0, _080496A0 + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080496A8 + ldr r0, _080496A4 + ldr r0, [r0] + adds r0, 0x41 + movs r1, 0 + bl sub_8049560 + b _080496F4 + .align 2, 0 +_080496A0: .4byte 0x03001770 +_080496A4: .4byte 0x03004824 +_080496A8: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080496C4 + ldr r0, _080496C0 + ldr r0, [r0] + adds r0, 0x41 + movs r1, 0x1 + bl sub_8049560 + b _080496F4 + .align 2, 0 +_080496C0: .4byte 0x03004824 +_080496C4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080496E0 + ldr r0, _080496DC + ldr r0, [r0] + adds r0, 0x41 + movs r1, 0x2 + bl sub_8049560 + b _080496F4 + .align 2, 0 +_080496DC: .4byte 0x03004824 +_080496E0: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080496F4 + ldr r0, _08049750 + ldr r0, [r0] + adds r0, 0x41 + movs r1, 0x3 + bl sub_8049560 +_080496F4: + ldr r0, _08049754 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080497B6 + movs r0, 0x5 + bl audio_play + ldr r4, _08049750 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x41 + ldrb r1, [r1] + cmp r1, 0x5 + bhi _0804975C + adds r0, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0x12 + movs r2, 0xE + movs r3, 0x1C + bl AddTextPrinterParametrized + ldr r3, _08049758 + movs r0, 0x13 + movs r1, 0xF + movs r2, 0x2 + bl PrintStringArray + movs r0, 0 + str r0, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x13 + movs r2, 0xF + movs r3, 0x2 + bl InitMenu + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x1 + strb r1, [r0] + b _080497B6 + .align 2, 0 +_08049750: .4byte 0x03004824 +_08049754: .4byte 0x03001770 +_08049758: .4byte gUnknown_0820C320 +_0804975C: + cmp r1, 0xB + bhi _0804977A + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x2 + strb r1, [r0] + b _080497B6 +_0804977A: + cmp r1, 0xC + bne _080497B6 + adds r0, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0x18 + movs r2, 0xE + movs r3, 0x1D + bl AddTextPrinterParametrized + movs r0, 0x18 + movs r1, 0xE + movs r2, 0x4 + bl sub_807292C + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x4 + strb r1, [r0] + ldr r0, _080497F4 + ldr r0, [r0, 0x10] + ldr r1, [r4] + adds r1, 0x7E + ldrh r1, [r1] + lsls r1, 5 + ldr r2, _080497F8 + adds r1, r2 + movs r2, 0x14 + bl sub_804ACD8 +_080497B6: + ldr r0, _080497FC + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080497EC + movs r2, 0 + ldr r3, _08049800 +_080497C8: + ldr r0, [r3] + lsls r1, r2, 1 + adds r0, 0x8C + adds r0, r1 + strh r2, [r0] + adds r2, 0x1 + cmp r2, 0x9 + ble _080497C8 + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08049800 + ldr r1, [r1] + adds r1, 0x8C + movs r2, 0x14 + bl SendBlock +_080497EC: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080497F4: .4byte gUnknown_0820C14C +_080497F8: .4byte 0x06010000 +_080497FC: .4byte 0x03001770 +_08049800: .4byte 0x03004824 + thumb_func_end sub_8049680 + + thumb_func_start sub_8049804 +sub_8049804: @ 8049804 + push {lr} + bl sub_8072DEC + bl sub_804A80C + ldr r3, _08049850 + ldr r0, [r3] + adds r0, 0x7B + movs r1, 0 + strb r1, [r0] + ldr r2, _08049854 + ldr r0, [r3] + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r0, _08049858 + ldr r0, [r0, 0x4] + ldr r1, [r3] + adds r1, 0x7E + ldrh r1, [r1] + lsls r1, 5 + ldr r2, _0804985C + adds r1, r2 + movs r2, 0x14 + bl sub_804ACD8 + pop {r0} + bx r0 + .align 2, 0 +_08049850: .4byte 0x03004824 +_08049854: .4byte 0x02020004 +_08049858: .4byte gUnknown_0820C14C +_0804985C: .4byte 0x06010000 + thumb_func_end sub_8049804 + + thumb_func_start sub_8049860 +sub_8049860: @ 8049860 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0804987C + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08049880 + movs r0, 0x5 + bl audio_play + movs r0, 0x1 + negs r0, r0 + b _08049890 + .align 2, 0 +_0804987C: .4byte 0x03001770 +_08049880: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804989C + movs r0, 0x5 + bl audio_play + movs r0, 0x1 +_08049890: + bl MoveMenuCursor + ldr r1, _080498D8 + ldr r1, [r1] + adds r1, 0x7C + strb r0, [r1] +_0804989C: + ldr r0, _080498DC + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08049938 + movs r0, 0x5 + bl audio_play + bl GetMenuCursorPos + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080498E0 + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080498D8 + ldr r0, [r0] + adds r0, 0x7B + movs r1, 0x2 + strb r1, [r0] + b _0804994A + .align 2, 0 +_080498D8: .4byte 0x03004824 +_080498DC: .4byte 0x03001770 +_080498E0: + ldr r4, _08049910 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x51 + adds r1, r2, 0 + adds r1, 0x42 + ldrb r1, [r1] + adds r2, 0x41 + ldrb r2, [r2] + bl sub_80499F0 + lsls r0, 24 + cmp r0, 0 + bne _08049914 + movs r0, 0x3 + movs r1, 0x2 + bl sub_804AADC + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x8 + strb r1, [r0] + b _0804994A + .align 2, 0 +_08049910: .4byte 0x03004824 +_08049914: + bl sub_8049620 + ldr r2, _08049934 + ldr r0, [r4] + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0804994A + .align 2, 0 +_08049934: .4byte 0x02020004 +_08049938: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804994A + movs r0, 0x5 + bl audio_play + bl sub_8049804 +_0804994A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8049860 + + thumb_func_start sub_8049954 +sub_8049954: @ 8049954 + push {lr} + ldr r0, _08049978 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0804996A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08049974 +_0804996A: + movs r0, 0x5 + bl audio_play + bl sub_8049804 +_08049974: + pop {r0} + bx r0 + .align 2, 0 +_08049978: .4byte 0x03001770 + thumb_func_end sub_8049954 + + thumb_func_start sub_804997C +sub_804997C: @ 804997C + push {r4,lr} + sub sp, 0x4 + ldr r0, _080499B4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080499E0 + ldr r0, _080499B8 + ldr r2, [r0] + adds r3, r2, 0 + adds r3, 0x41 + ldrb r1, [r3] + cmp r1, 0x5 + bhi _080499C4 + ldr r0, _080499BC + ldrb r1, [r3] + adds r2, 0x42 + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080499C0 + movs r4, 0x4 + str r4, [sp] + bl sub_809D8BC + b _080499E0 + .align 2, 0 +_080499B4: .4byte 0x0202f388 +_080499B8: .4byte 0x03004824 +_080499BC: .4byte 0x03004360 +_080499C0: .4byte sub_80484F4 +_080499C4: + ldr r0, _080499E8 + subs r1, 0x6 + lsls r1, 24 + lsrs r1, 24 + adds r2, 0x43 + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080499EC + movs r4, 0x4 + str r4, [sp] + bl sub_809D8BC +_080499E0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080499E8: .4byte 0x030045c0 +_080499EC: .4byte sub_80484F4 + thumb_func_end sub_804997C + + thumb_func_start sub_80499F0 +sub_80499F0: @ 80499F0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + movs r3, 0 + cmp r1, r4 + bge _08049A18 +_08049A04: + cmp r2, r3 + beq _08049A12 + adds r0, r5, r3 + ldrb r0, [r0] + adds r0, r1, r0 + lsls r0, 24 + lsrs r1, r0, 24 +_08049A12: + adds r3, 0x1 + cmp r3, r4 + blt _08049A04 +_08049A18: + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80499F0 + + thumb_func_start sub_8049A20 +sub_8049A20: @ 8049A20 + push {r4,r5,lr} + sub sp, 0xC + movs r2, 0 + ldr r0, _08049A80 + ldr r1, [r0] + adds r3, r1, 0 + adds r3, 0x42 + adds r5, r0, 0 + ldrb r0, [r3] + cmp r2, r0 + bge _08049A4C + adds r4, r1, 0 + adds r4, 0x51 +_08049A3A: + mov r1, sp + adds r0, r1, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + ldrb r0, [r3] + cmp r2, r0 + blt _08049A3A +_08049A4C: + adds r4, r5, 0 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x42 + ldrb r1, [r1] + adds r0, 0x41 + ldrb r2, [r0] + mov r0, sp + bl sub_80499F0 + lsls r0, 24 + cmp r0, 0 + bne _08049A88 + movs r0, 0x3 + movs r1, 0x2 + bl sub_804AADC + ldr r0, [r4] + adds r0, 0x8C + ldr r1, _08049A84 + strh r1, [r0] + movs r0, 0xB4 + movs r1, 0 + bl sub_804AADC + b _08049AB4 + .align 2, 0 +_08049A80: .4byte 0x03004824 +_08049A84: .4byte 0x0000bbcc +_08049A88: + movs r0, 0x3 + movs r1, 0x1 + bl sub_804AADC + ldr r0, [r5] + adds r0, 0x8C + ldr r1, _08049ABC + strh r1, [r0] + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _08049AB4 + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r5] + adds r1, 0x8C + movs r2, 0x14 + bl SendBlock +_08049AB4: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08049ABC: .4byte 0x0000bbbb + thumb_func_end sub_8049A20 + + thumb_func_start sub_8049AC0 +sub_8049AC0: @ 8049AC0 + push {r4,lr} + ldr r0, _08049ADC + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08049AE0 + movs r0, 0x5 + bl audio_play + movs r0, 0x1 + negs r0, r0 + b _08049AF0 + .align 2, 0 +_08049ADC: .4byte 0x03001770 +_08049AE0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08049AFC + movs r0, 0x5 + bl audio_play + movs r0, 0x1 +_08049AF0: + bl MoveMenuCursor + ldr r1, _08049B20 + ldr r1, [r1] + adds r1, 0x7C + strb r0, [r1] +_08049AFC: + ldr r0, _08049B24 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08049B64 + movs r0, 0x5 + bl audio_play + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + bne _08049B28 + bl sub_8049A20 + b _08049B56 + .align 2, 0 +_08049B20: .4byte 0x03004824 +_08049B24: .4byte 0x03001770 +_08049B28: + movs r0, 0x3 + movs r1, 0x1 + bl sub_804AADC + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _08049B56 + ldr r4, _08049B5C + ldr r0, [r4] + adds r0, 0x8C + ldr r1, _08049B60 + strh r1, [r0] + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + adds r1, 0x8C + movs r2, 0x14 + bl SendBlock +_08049B56: + ldr r0, _08049B5C + ldr r0, [r0] + b _08049BAA + .align 2, 0 +_08049B5C: .4byte 0x03004824 +_08049B60: .4byte 0x0000bbcc +_08049B64: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08049BB0 + movs r0, 0x3 + movs r1, 0x1 + bl sub_804AADC + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + bne _08049B8C + movs r0, 0x1 + bl MoveMenuCursor + ldr r1, _08049BB8 + ldr r1, [r1] + adds r1, 0x7C + strb r0, [r1] +_08049B8C: + ldr r4, _08049BB8 + ldr r0, [r4] + adds r0, 0x8C + ldr r1, _08049BBC + strh r1, [r0] + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + adds r1, 0x8C + movs r2, 0x14 + bl SendBlock + ldr r0, [r4] +_08049BAA: + adds r0, 0x7B + movs r1, 0x64 + strb r1, [r0] +_08049BB0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08049BB8: .4byte 0x03004824 +_08049BBC: .4byte 0x0000bbcc + thumb_func_end sub_8049AC0 + + thumb_func_start sub_8049BC0 +sub_8049BC0: @ 8049BC0 + push {r4,r5,lr} + ldr r0, _08049BDC + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08049BE0 + movs r0, 0x5 + bl audio_play + movs r0, 0x1 + negs r0, r0 + b _08049BF0 + .align 2, 0 +_08049BDC: .4byte 0x03001770 +_08049BE0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08049BFC + movs r0, 0x5 + bl audio_play + movs r0, 0x1 +_08049BF0: + bl MoveMenuCursor + ldr r1, _08049C5C + ldr r1, [r1] + adds r1, 0x7C + strb r0, [r1] +_08049BFC: + ldr r0, _08049C60 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08049C72 + movs r0, 0x5 + bl audio_play + bl GetMenuCursorPos + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08049C6C + movs r0, 0x4 + bl sub_804AA0C + ldr r4, _08049C5C + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x8C + ldr r1, _08049C64 + strh r1, [r2] + adds r0, 0x8E + strh r5, [r0] + movs r0, 0x5 + movs r1, 0 + bl sub_804AADC + ldr r2, _08049C68 + ldr r0, [r4] + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x64 + strb r1, [r0] + b _08049C84 + .align 2, 0 +_08049C5C: .4byte 0x03004824 +_08049C60: .4byte 0x03001770 +_08049C64: .4byte 0x0000eeaa +_08049C68: .4byte 0x02020004 +_08049C6C: + bl sub_8049804 + b _08049C84 +_08049C72: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08049C84 + movs r0, 0x5 + bl audio_play + bl sub_8049804 +_08049C84: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8049BC0 + + thumb_func_start sub_8049C8C +sub_8049C8C: @ 8049C8C + push {r4,lr} + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _08049CAE + ldr r4, _08049CC0 + ldr r0, [r4] + adds r0, 0x41 + ldrb r0, [r0] + bl sub_8049E9C + ldr r0, [r4] + adds r0, 0x8A + ldrb r0, [r0] + bl sub_8049E9C +_08049CAE: + ldr r0, _08049CC0 + ldr r0, [r0] + adds r0, 0x7B + movs r1, 0x7 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08049CC0: .4byte 0x03004824 + thumb_func_end sub_8049C8C + + thumb_func_start sub_8049CC4 +sub_8049CC4: @ 8049CC4 + push {r4,lr} + ldr r4, _08049CE8 + ldr r0, [r4] + adds r0, 0x80 + ldrh r1, [r0] + ldr r0, _08049CEC + cmp r1, r0 + bne _08049CE0 + bl sub_8049088 + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0xE + strb r1, [r0] +_08049CE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08049CE8: .4byte 0x03004824 +_08049CEC: .4byte 0x00000505 + thumb_func_end sub_8049CC4 + + thumb_func_start DisplayMessageAndContinueTask +DisplayMessageAndContinueTask: @ 8049CF0 + push {r4,lr} + sub sp, 0x4 + ldr r4, _08049D40 + ldr r1, [r4] + adds r1, 0xB4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xB4 + ldrb r0, [r0] + cmp r0, 0x78 + bls _08049D36 + adds r0, r1, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0x18 + movs r2, 0xE + movs r3, 0x1D + bl AddTextPrinterParametrized + movs r0, 0x18 + movs r1, 0xE + movs r2, 0x4 + bl sub_807292C + ldr r0, [r4] + adds r0, 0xB4 + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x7B + movs r1, 0x3 + strb r1, [r0] +_08049D36: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08049D40: .4byte 0x03004824 + thumb_func_end DisplayMessageAndContinueTask + + thumb_func_start sub_8049D44 +sub_8049D44: @ 8049D44 + push {lr} + ldr r0, _08049D90 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08049D8A + movs r0, 0x5 + bl audio_play + movs r0, 0 + bl sub_804A840 + movs r0, 0x1 + bl sub_804A840 + ldr r2, _08049D94 + ldr r0, [r2] + adds r0, 0x7B + movs r1, 0 + strb r1, [r0] + ldr r3, _08049D98 + ldr r0, [r2] + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_08049D8A: + pop {r0} + bx r0 + .align 2, 0 +_08049D90: .4byte 0x03001770 +_08049D94: .4byte 0x03004824 +_08049D98: .4byte 0x02020004 + thumb_func_end sub_8049D44 + + thumb_func_start sub_8049D9C +sub_8049D9C: @ 8049D9C + push {lr} + ldr r0, _08049DBC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08049DB8 + bl sub_800832C + ldr r0, _08049DC0 + ldr r0, [r0] + adds r0, 0x7B + movs r1, 0xC + strb r1, [r0] +_08049DB8: + pop {r0} + bx r0 + .align 2, 0 +_08049DBC: .4byte 0x0202f388 +_08049DC0: .4byte 0x03004824 + thumb_func_end sub_8049D9C + + thumb_func_start sub_8049DC4 +sub_8049DC4: @ 8049DC4 + push {lr} + ldr r0, _08049DD8 + ldrb r0, [r0] + cmp r0, 0 + bne _08049DD4 + ldr r0, _08049DDC + bl SetMainCallback2 +_08049DD4: + pop {r0} + bx r0 + .align 2, 0 +_08049DD8: .4byte 0x03002fa4 +_08049DDC: .4byte sub_805465C + thumb_func_end sub_8049DC4 + + thumb_func_start sub_8049DE0 +sub_8049DE0: @ 8049DE0 + push {lr} + ldr r0, _08049DF8 + ldr r0, [r0] + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0xF + bhi _08049E98 + lsls r0, 2 + ldr r1, _08049DFC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08049DF8: .4byte 0x03004824 +_08049DFC: .4byte _08049E00 + .align 2, 0 +_08049E00: + .4byte _08049E40 + .4byte _08049E46 + .4byte _08049E4C + .4byte _08049E52 + .4byte _08049E58 + .4byte _08049E98 + .4byte _08049E5E + .4byte _08049E64 + .4byte _08049E6A + .4byte _08049E70 + .4byte _08049E76 + .4byte _08049E7C + .4byte _08049E82 + .4byte _08049E88 + .4byte _08049E8E + .4byte _08049E94 +_08049E40: + bl sub_8049680 + b _08049E98 +_08049E46: + bl sub_8049860 + b _08049E98 +_08049E4C: + bl sub_804997C + b _08049E98 +_08049E52: + bl sub_8049AC0 + b _08049E98 +_08049E58: + bl sub_8049BC0 + b _08049E98 +_08049E5E: + bl sub_8049C8C + b _08049E98 +_08049E64: + bl sub_8049CC4 + b _08049E98 +_08049E6A: + bl sub_8049D44 + b _08049E98 +_08049E70: + bl sub_8048A14 + b _08049E98 +_08049E76: + bl sub_8048A50 + b _08049E98 +_08049E7C: + bl sub_8049D9C + b _08049E98 +_08049E82: + bl sub_8049DC4 + b _08049E98 +_08049E88: + bl sub_8048A90 + b _08049E98 +_08049E8E: + bl DisplayMessageAndContinueTask + b _08049E98 +_08049E94: + bl sub_8049954 +_08049E98: + pop {r0} + bx r0 + thumb_func_end sub_8049DE0 + + thumb_func_start sub_8049E9C +sub_8049E9C: @ 8049E9C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, _08049ED0 + ldr r0, [r3] + adds r0, 0x80 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _08049EC8 + movs r0, 0x1 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x82 + adds r0, r2 + strb r4, [r0] +_08049EC8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08049ED0: .4byte 0x03004824 + thumb_func_end sub_8049E9C + + thumb_func_start sub_8049ED4 +sub_8049ED4: @ 8049ED4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x74 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _08049F24 + ldr r5, [r0] + adds r0, r5, 0 + adds r0, 0x82 + add r0, r10 + ldrb r0, [r0] + movs r1, 0x1 + str r1, [sp, 0x6C] + cmp r0, 0x5 + bhi _08049EFE + movs r2, 0 + str r2, [sp, 0x6C] +_08049EFE: + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r5, 0 + adds r0, 0x80 + mov r1, r10 + adds r3, r0, r1 + ldrb r0, [r3] + cmp r0, 0x2 + bne _08049F1A + b _0804A0AC +_08049F1A: + cmp r0, 0x2 + bgt _08049F28 + cmp r0, 0x1 + beq _08049F36 + b _0804A294 + .align 2, 0 +_08049F24: .4byte 0x03004824 +_08049F28: + cmp r0, 0x3 + bne _08049F2E + b _0804A0E4 +_08049F2E: + cmp r0, 0x4 + bne _08049F34 + b _0804A244 +_08049F34: + b _0804A294 +_08049F36: + movs r4, 0 + adds r0, r5, 0 + adds r0, 0x42 + add r0, r10 + ldr r7, _0804A094 + ldr r2, [sp, 0x6C] + lsls r2, 1 + mov r9, r2 + ldr r3, _0804A098 + mov r12, r3 + mov r5, r10 + lsls r5, 4 + str r5, [sp, 0x70] + ldrb r0, [r0] + cmp r4, r0 + bcs _08049F8E + adds r6, r7, 0 + ldr r2, _0804A09C + ldr r0, [sp, 0x6C] + add r0, r9 + lsls r3, r0, 1 + movs r5, 0x4 +_08049F62: + ldr r0, [r2] + adds r1, r4, r3 + adds r0, 0x34 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [r2] + adds r0, 0x42 + add r0, r10 + ldrb r0, [r0] + cmp r4, r0 + bcc _08049F62 +_08049F8E: + ldr r1, _0804A09C + ldr r0, [r1] + ldr r5, [sp, 0x6C] + add r5, r9 + lsls r3, r5, 1 + mov r2, r8 + adds r6, r2, r3 + adds r0, 0x34 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r0, _0804A09C + ldr r4, [r0] + adds r4, 0x34 + adds r4, r6 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0x14 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + lsls r5, 2 + mov r1, r12 + adds r0, r5, r1 + ldrb r0, [r0] + adds r3, 0x1 + lsls r3, 1 + add r3, r12 + ldrb r1, [r3] + adds r0, r1 + asrs r0, 1 + lsls r0, 3 + adds r0, 0xE + strh r0, [r2, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + mov r0, r12 + adds r0, 0x1 + adds r5, r0 + ldrb r0, [r5] + lsls r0, 3 + subs r0, 0xC + strh r0, [r1, 0x36] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, _0804A0A0 + bl oamt_set_x3A_32 + ldr r2, _0804A09C + ldr r1, [r2] + adds r1, 0x80 + add r1, r10 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + adds r0, 0x34 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + bl sub_8078A34 + bl sub_8072DEC + ldr r3, _0804A09C + ldr r0, [r3] + adds r0, 0x4 + ldr r1, _0804A0A4 + mov r5, r9 + adds r2, r5, r1 + ldrb r2, [r2] + adds r1, 0x1 + add r1, r9 + ldrb r1, [r1] + str r1, [sp] + movs r1, 0x13 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0 + bl FillWindowRect_DefaultPalette + ldr r1, _0804A09C + ldr r0, [r1] + adds r0, 0xC8 + ldr r2, [sp, 0x70] + mov r3, r10 + subs r1, r2, r3 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _0804A0A8 + movs r2, 0xF + str r2, [sp] + movs r2, 0x11 + str r2, [sp, 0x4] + movs r5, 0 + str r5, [sp, 0x8] + movs r2, 0 + bl sub_804A96C + ldr r0, [sp, 0x6C] + cmp r0, 0 + beq _0804A08C + b _0804A294 +_0804A08C: + bl sub_804A80C + b _0804A294 + .align 2, 0 +_0804A094: .4byte 0x02020004 +_0804A098: .4byte gUnknown_0820C29C +_0804A09C: .4byte 0x03004824 +_0804A0A0: .4byte sub_809D62C +_0804A0A4: .4byte gUnknown_0820C330 +_0804A0A8: .4byte gUnknown_0820ADEE +_0804A0AC: + ldr r2, _0804A0DC + ldr r1, [sp, 0x6C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r8 + adds r1, r5, 0 + adds r1, 0x34 + adds r1, r0 + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0804A0E0 + cmp r1, r0 + beq _0804A0D4 + b _0804A294 +_0804A0D4: + movs r0, 0x3 + strb r0, [r3] + b _0804A294 + .align 2, 0 +_0804A0DC: .4byte 0x02020004 +_0804A0E0: .4byte sub_809D62C +_0804A0E4: + adds r0, r5, 0 + adds r0, 0xC8 + ldr r2, [sp, 0x6C] + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _0804A228 + movs r2, 0xF + str r2, [sp] + movs r7, 0x11 + str r7, [sp, 0x4] + movs r5, 0 + str r5, [sp, 0x8] + movs r2, 0 + bl sub_804A96C + ldr r0, _0804A22C + ldr r3, [r0] + ldr r1, [sp, 0x6C] + lsls r6, r1, 1 + adds r1, r6 + mov r9, r1 + lsls r1, 1 + mov r2, r8 + adds r0, r2, r1 + adds r3, 0x34 + adds r3, r0 + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r5, _0804A230 + adds r2, r5 + ldr r4, _0804A234 + mov r0, r9 + lsls r5, r0, 2 + adds r0, r5, r4 + ldrb r0, [r0] + adds r1, 0x1 + lsls r1, 1 + adds r1, r4 + ldrb r1, [r1] + adds r0, r1 + asrs r0, 1 + lsls r0, 3 + adds r0, 0xE + strh r0, [r2, 0x20] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r2, _0804A230 + adds r1, r2 + adds r4, 0x1 + adds r5, r4 + ldrb r0, [r5] + lsls r0, 3 + subs r0, 0xC + strh r0, [r1, 0x22] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r5, 0 + strh r5, [r0, 0x24] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x26] + mov r0, sp + adds r0, 0x12 + ldr r1, [sp, 0x6C] + mov r2, r8 + bl sub_804A2B4 + add r1, sp, 0xC + movs r3, 0xFC + strb r3, [r1] + adds r2, r1, 0 + movs r1, 0x6 + strb r1, [r2, 0x1] + movs r1, 0x4 + strb r1, [r2, 0x2] + adds r1, r2, 0 + strb r3, [r1, 0x3] + strb r7, [r1, 0x4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x40 + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + strb r1, [r2, 0x5] + ldr r0, _0804A22C + ldr r1, [r0] + adds r0, r1, 0x4 + adds r1, 0x7A + ldrb r2, [r1] + mov r1, r9 + lsls r1, 6 + mov r9, r1 + add r2, r9 + ldr r4, _0804A238 + ldr r3, [sp, 0x6C] + lsls r1, r3, 2 + adds r3, r1, r4 + ldrb r3, [r3] + ldr r5, _0804A23C + adds r1, r5 + ldrb r1, [r1] + str r1, [sp] + add r1, sp, 0xC + bl sub_8003460 + add r7, sp, 0x34 + adds r0, r7, 0 + ldr r1, [sp, 0x6C] + mov r2, r8 + bl sub_804A33C + ldr r0, _0804A22C + ldr r2, [r0] + adds r0, r2, 0x4 + ldr r1, _0804A240 + adds r2, 0x7A + ldrb r2, [r2] + add r2, r9 + adds r2, 0x20 + adds r6, 0x1 + lsls r6, 1 + adds r4, r6, r4 + ldrb r5, [r4] + ldr r3, _0804A23C + adds r6, r3 + ldrb r4, [r6] + adds r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + adds r3, r5, 0 + bl sub_8003460 + ldr r0, _0804A22C + ldr r1, [r0] + adds r0, r1, 0x4 + adds r1, 0x7A + ldrb r2, [r1] + add r2, r9 + adds r2, 0x26 + str r4, [sp] + adds r1, r7, 0 + adds r3, r5, 0 + bl sub_8003460 + ldr r2, _0804A22C + ldr r1, [r2] + b _0804A28A + .align 2, 0 +_0804A228: .4byte gUnknown_0820ABF0 +_0804A22C: .4byte 0x03004824 +_0804A230: .4byte 0x02020004 +_0804A234: .4byte gUnknown_0820C29C +_0804A238: .4byte gUnknown_0820C334 +_0804A23C: .4byte gUnknown_0820C335 +_0804A240: .4byte gUnknown_0842C7CA +_0804A244: + ldr r0, _0804A2A4 + ldr r0, [r0, 0x14] + adds r1, r5, 0 + adds r1, 0x7E + ldrh r1, [r1] + lsls r1, 5 + ldr r3, _0804A2A8 + adds r1, r3 + movs r2, 0x14 + bl sub_804ACD8 + ldr r0, _0804A2AC + mov r5, r10 + lsls r1, r5, 1 + adds r4, r1, r0 + ldrb r2, [r4] + adds r2, 0x4 + lsls r2, 24 + lsrs r2, 24 + adds r0, 0x1 + adds r1, r0 + ldrb r3, [r1] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4] + str r0, [sp] + ldrb r0, [r1] + str r0, [sp, 0x4] + mov r0, r10 + mov r1, r8 + bl sub_804A51C + ldr r0, _0804A2B0 + ldr r1, [r0] +_0804A28A: + adds r1, 0x80 + add r1, r10 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804A294: + add sp, 0x74 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A2A4: .4byte gUnknown_0820C14C +_0804A2A8: .4byte 0x06010000 +_0804A2AC: .4byte gUnknown_0820C3D1 +_0804A2B0: .4byte 0x03004824 + thumb_func_end sub_8049ED4 + + thumb_func_start sub_804A2B4 +sub_804A2B4: @ 804A2B4 + push {r4,r5,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r1, 0 + bne _0804A2F4 + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r0, _0804A2F0 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + adds r0, r5, 0 + mov r1, sp + bl StringCopy10 + adds r0, r4, 0 + bl pokemon_get_gender + adds r0, r4, 0 + movs r1, 0x38 + bl PokemonGetField + b _0804A31E + .align 2, 0 +_0804A2F0: .4byte 0x03004360 +_0804A2F4: + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r0, _0804A334 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + adds r0, r5, 0 + mov r1, sp + bl StringCopy10 + adds r0, r4, 0 + bl pokemon_get_gender + adds r0, r4, 0 + movs r1, 0x38 + bl PokemonGetField +_0804A31E: + ldr r0, _0804A338 + adds r1, r5, 0 + bl GetStringWidthGivenWindowConfig + lsls r0, 24 + lsrs r0, 24 + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0804A334: .4byte 0x030045c0 +_0804A338: .4byte gWindowConfig_81E7294 + thumb_func_end sub_804A2B4 + + thumb_func_start sub_804A33C +sub_804A33C: @ 804A33C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r6, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _0804A384 + ldr r1, [r0] + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 1 + adds r0, r2, r0 + adds r1, 0x5D + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _0804A3F4 + movs r4, 0 + movs r0, 0x64 + adds r5, r2, 0 + muls r5, r0 + ldr r0, _0804A388 + mov r9, r0 + ldr r2, _0804A38C + mov r8, r2 +_0804A376: + cmp r7, 0 + bne _0804A390 + adds r1, r4, 0 + adds r1, 0xD + mov r2, r9 + b _0804A396 + .align 2, 0 +_0804A384: .4byte 0x03004824 +_0804A388: .4byte 0x03004360 +_0804A38C: .4byte 0x030045c0 +_0804A390: + adds r1, r4, 0 + adds r1, 0xD + mov r2, r8 +_0804A396: + adds r0, r5, r2 + movs r2, 0 + bl PokemonGetField + lsls r1, r4, 1 + add r1, sp + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _0804A376 + ldr r1, _0804A3E8 + adds r0, r6, 0 + bl StringCopy + movs r4, 0 +_0804A3B8: + lsls r0, r4, 1 + mov r2, sp + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _0804A3D4 + adds r1, r0, 0 + movs r0, 0xD + muls r1, r0 + ldr r0, _0804A3EC + adds r1, r0 + adds r0, r6, 0 + bl StringAppend +_0804A3D4: + adds r0, r6, 0 + ldr r1, _0804A3F0 + bl StringAppend + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _0804A3B8 + b _0804A404 + .align 2, 0 +_0804A3E8: .4byte gUnknown_0820C33C +_0804A3EC: .4byte gMoveNames +_0804A3F0: .4byte gUnknown_0842C7CB +_0804A3F4: + ldr r1, _0804A414 + adds r0, r6, 0 + bl StringCopy + ldr r1, _0804A418 + adds r0, r6, 0 + bl StringAppend +_0804A404: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A414: .4byte gUnknown_0820C33C +_0804A418: .4byte gUnknown_0842C7D6 + thumb_func_end sub_804A33C + + thumb_func_start sub_804A41C +sub_804A41C: @ 804A41C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + lsls r0, 24 + lsrs r5, r0, 24 + add r3, sp, 0x1C + movs r2, 0 + movs r1, 0xFC + strb r1, [r3] + movs r0, 0x6 + strb r0, [r3, 0x1] + movs r0, 0x4 + strb r0, [r3, 0x2] + strb r1, [r3, 0x3] + movs r0, 0x11 + strb r0, [r3, 0x4] + strb r2, [r3, 0x5] + movs r6, 0 + ldr r1, _0804A470 + ldr r0, [r1] + adds r0, 0x42 + adds r0, r5 + ldrb r0, [r0] + cmp r6, r0 + bcs _0804A504 + mov r8, r3 + adds r7, r1, 0 + ldr r0, _0804A474 + mov r9, r0 + movs r4, 0x1 + add r4, r9 + mov r10, r4 +_0804A462: + cmp r5, 0 + bne _0804A47C + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _0804A478 + b _0804A484 + .align 2, 0 +_0804A470: .4byte 0x03004824 +_0804A474: .4byte gUnknown_0820C29C +_0804A478: .4byte 0x03004360 +_0804A47C: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _0804A514 +_0804A484: + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2 + add r2, sp, 0x4 + bl PokemonGetField + mov r0, sp + adds r0, 0x22 + add r1, sp, 0x4 + bl StringCopy10 + adds r0, r4, 0 + bl pokemon_get_gender + mov r1, sp + adds r1, 0x22 + ldr r0, _0804A518 + bl GetStringWidthGivenWindowConfig + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x32 + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + mov r0, r8 + strb r1, [r0, 0x5] + ldr r1, [r7] + adds r0, r1, 0x4 + adds r1, 0x7A + lsls r2, r5, 5 + adds r2, r5 + lsls r2, 2 + ldrb r1, [r1] + adds r2, r1 + movs r1, 0x16 + muls r1, r6 + adds r2, r1 + lsls r2, 16 + lsrs r2, 16 + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 1 + adds r1, r6, r1 + lsls r1, 1 + mov r4, r9 + adds r3, r1, r4 + ldrb r3, [r3] + add r1, r10 + ldrb r1, [r1] + str r1, [sp] + mov r1, r8 + bl sub_8003460 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [r7] + adds r0, 0x42 + adds r0, r5 + ldrb r0, [r0] + cmp r6, r0 + bcc _0804A462 +_0804A504: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A514: .4byte 0x030045c0 +_0804A518: .4byte gWindowConfig_81E7294 + thumb_func_end sub_804A41C + + thumb_func_start sub_804A51C +sub_804A51C: @ 804A51C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + ldr r4, [sp, 0x48] + ldr r5, [sp, 0x4C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x24] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0804A59C + ldr r0, [r0] + adds r0, 0xC8 + ldr r3, _0804A5A0 + movs r1, 0x6 + str r1, [sp] + movs r1, 0x3 + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804A96C + mov r0, r8 + cmp r0, 0 + bne _0804A5A8 + movs r0, 0x64 + mov r4, r9 + muls r4, r0 + ldr r0, _0804A5A4 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + movs r2, 0 + bl PokemonGetField + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + bl pokemon_get_gender + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r4, 0 + movs r1, 0x2 + add r2, sp, 0xC + bl PokemonGetField + b _0804A5D4 + .align 2, 0 +_0804A59C: .4byte 0x03004824 +_0804A5A0: .4byte gUnknown_08EA1DC8 +_0804A5A4: .4byte 0x03004360 +_0804A5A8: + movs r0, 0x64 + mov r4, r9 + muls r4, r0 + ldr r0, _0804A65C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + movs r2, 0 + bl PokemonGetField + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + bl pokemon_get_gender + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r4, 0 + movs r1, 0x2 + add r2, sp, 0xC + bl PokemonGetField +_0804A5D4: + ldr r1, _0804A660 + ldr r5, [r1] + mov r3, r8 + lsls r0, r3, 1 + add r0, r8 + lsls r0, 1 + add r0, r9 + adds r1, r5, 0 + adds r1, 0x5D + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _0804A690 + adds r0, r6, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [sp, 0x24] + lsls r2, r0, 5 + cmp r4, 0 + beq _0804A614 + mov r1, r10 + adds r0, r1, r2 + lsls r0, 1 + adds r1, r5, 0 + adds r1, 0xDA + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x60 + strh r0, [r1] +_0804A614: + ldr r3, _0804A660 + ldr r4, [r3] + mov r0, r10 + adds r5, r0, r2 + adds r0, r5, 0x1 + lsls r0, 1 + adds r4, 0xDA + adds r4, r0 + adds r0, r6, 0 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x70 + strh r0, [r4] + cmp r7, 0 + bne _0804A664 + add r0, sp, 0xC + movs r1, 0 + bl sub_8042548 + lsls r0, 24 + cmp r0, 0 + bne _0804A6CC + ldr r3, _0804A660 + ldr r1, [r3] + adds r0, r5, 0 + subs r0, 0x1F + lsls r0, 1 + adds r1, 0xDA + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + b _0804A6CA + .align 2, 0 +_0804A65C: .4byte 0x030045c0 +_0804A660: .4byte 0x03004824 +_0804A664: + cmp r7, 0xFE + bne _0804A6CC + add r0, sp, 0xC + movs r1, 0xFE + bl sub_8042548 + lsls r0, 24 + cmp r0, 0 + bne _0804A6CC + ldr r0, _0804A68C + ldr r1, [r0] + adds r0, r5, 0 + subs r0, 0x1F + lsls r0, 1 + adds r1, 0xDA + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x2 + b _0804A6CA + .align 2, 0 +_0804A68C: .4byte 0x03004824 +_0804A690: + ldr r1, [sp, 0x24] + lsls r0, r1, 5 + mov r1, r10 + adds r3, r1, r0 + adds r1, r3, 0 + subs r1, 0x20 + lsls r1, 1 + adds r2, r5, 0 + adds r2, 0xDA + adds r1, r2, r1 + adds r0, r3, 0 + subs r0, 0x21 + lsls r0, 1 + adds r0, r2, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, r3, 0 + subs r1, 0x1F + lsls r1, 1 + adds r1, r2, r1 + adds r0, r3, 0 + subs r0, 0x24 + lsls r0, 1 + adds r2, r0 + ldrh r2, [r2] + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + orrs r0, r2 +_0804A6CA: + strh r0, [r1] +_0804A6CC: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804A51C + + thumb_func_start sub_804A6DC +sub_804A6DC: @ 804A6DC + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r7, 0 + ldr r0, _0804A734 + ldr r0, [r0] + adds r0, 0x42 + adds r0, r6 + ldrb r0, [r0] + cmp r7, r0 + bge _0804A72C + lsls r0, r6, 1 + adds r0, r6 + ldr r1, _0804A738 + lsls r0, 2 + adds r5, r0, r1 + ldr r1, _0804A73C + adds r4, r0, r1 +_0804A702: + lsls r1, r7, 24 + lsrs r1, 24 + ldrb r2, [r5] + ldrb r3, [r5, 0x1] + ldrb r0, [r4] + str r0, [sp] + ldrb r0, [r4, 0x1] + str r0, [sp, 0x4] + adds r0, r6, 0 + bl sub_804A51C + adds r5, 0x2 + adds r4, 0x2 + adds r7, 0x1 + ldr r0, _0804A734 + ldr r0, [r0] + adds r0, 0x42 + adds r0, r6 + ldrb r0, [r0] + cmp r7, r0 + blt _0804A702 +_0804A72C: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A734: .4byte 0x03004824 +_0804A738: .4byte gUnknown_0820C2B6 +_0804A73C: .4byte gUnknown_0820C2CE + thumb_func_end sub_804A6DC + + thumb_func_start sub_804A740 +sub_804A740: @ 804A740 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r7, 0 + ldr r3, _0804A800 + ldr r0, [r3] + adds r0, 0x42 + add r0, r12 + ldrb r0, [r0] + cmp r7, r0 + bge _0804A7F2 + ldr r6, _0804A804 + mov r9, r3 + mov r1, r12 + lsls r0, r1, 1 + add r0, r12 + lsls r2, r0, 1 + mov r10, r2 + ldr r1, _0804A808 + movs r2, 0 + mov r8, r2 + lsls r0, 2 + adds r5, r0, r1 +_0804A778: + mov r1, r9 + ldr r0, [r1] + mov r2, r10 + adds r4, r7, r2 + adds r0, 0x34 + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + mov r0, r9 + ldr r3, [r0] + adds r2, r3, 0 + adds r2, 0x34 + adds r2, r4 + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r5] + lsls r0, 3 + adds r0, 0xE + strh r0, [r1, 0x20] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r5, 0x1] + lsls r0, 3 + subs r0, 0xC + strh r0, [r1, 0x22] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r8 + strh r1, [r0, 0x24] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r2, r8 + strh r2, [r0, 0x26] + adds r5, 0x2 + adds r7, 0x1 + adds r3, 0x42 + add r3, r12 + ldrb r3, [r3] + cmp r7, r3 + blt _0804A778 +_0804A7F2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A800: .4byte 0x03004824 +_0804A804: .4byte 0x02020004 +_0804A808: .4byte gUnknown_0820C29C + thumb_func_end sub_804A740 + + thumb_func_start sub_804A80C +sub_804A80C: @ 804A80C + push {lr} + sub sp, 0x8 + ldr r0, _0804A838 + ldr r0, [r0] + adds r0, 0x4 + ldr r1, _0804A83C + ldrb r2, [r1, 0x2] + ldrb r1, [r1, 0x3] + str r1, [sp] + movs r1, 0x13 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0 + bl FillWindowRect_DefaultPalette + movs r0, 0x1 + bl sub_804A41C + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0804A838: .4byte 0x03004824 +_0804A83C: .4byte gUnknown_0820C330 + thumb_func_end sub_804A80C + + thumb_func_start sub_804A840 +sub_804A840: @ 804A840 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0804A8A8 + ldr r4, _0804A89C + ldr r0, [r4] + adds r0, 0x4 + ldr r1, _0804A8A0 + ldrb r2, [r1] + ldrb r1, [r1, 0x1] + str r1, [sp] + movs r1, 0x13 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0 + bl FillWindowRect_DefaultPalette + ldr r0, [r4] + adds r0, 0xC8 + ldr r3, _0804A8A4 + movs r1, 0xF + str r1, [sp] + movs r1, 0x11 + str r1, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0 + movs r2, 0 + bl sub_804A96C + movs r0, 0 + bl sub_804A6DC + movs r0, 0 + bl sub_804A41C + movs r0, 0 + bl sub_804A740 + ldr r0, [r4] + adds r0, 0xC8 + bl sub_804A938 + b _0804A8FA + .align 2, 0 +_0804A89C: .4byte 0x03004824 +_0804A8A0: .4byte gUnknown_0820C330 +_0804A8A4: .4byte gUnknown_0820ADEE +_0804A8A8: + bl sub_8072DEC + ldr r4, _0804A924 + ldr r0, [r4] + adds r0, 0x4 + ldr r1, _0804A928 + ldrb r2, [r1, 0x2] + ldrb r1, [r1, 0x3] + str r1, [sp] + movs r1, 0x13 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0 + bl FillWindowRect_DefaultPalette + ldr r0, [r4] + adds r0, 0xC8 + ldr r3, _0804A92C + movs r1, 0xF + str r1, [sp] + movs r1, 0x11 + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0xF + movs r2, 0 + bl sub_804A96C + movs r0, 0x1 + bl sub_804A6DC + movs r0, 0x1 + bl sub_804A41C + movs r0, 0x1 + bl sub_804A740 + ldr r0, [r4] + adds r0, 0xC8 + bl sub_804A938 +_0804A8FA: + ldr r0, _0804A930 + ldr r0, [r0, 0x4] + ldr r4, _0804A924 + ldr r1, [r4] + adds r1, 0x7E + ldrh r1, [r1] + lsls r1, 5 + ldr r2, _0804A934 + adds r1, r2 + movs r2, 0x14 + bl sub_804ACD8 + ldr r0, [r4] + adds r0, 0x80 + adds r0, r5 + movs r1, 0 + strb r1, [r0] + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804A924: .4byte 0x03004824 +_0804A928: .4byte gUnknown_0820C330 +_0804A92C: .4byte gUnknown_0820ADEE +_0804A930: .4byte gUnknown_0820C14C +_0804A934: .4byte 0x06010000 + thumb_func_end sub_804A840 + + thumb_func_start sub_804A938 +sub_804A938: @ 804A938 + movs r1, 0x1 + strb r1, [r0, 0x10] + bx lr + thumb_func_end sub_804A938 + + thumb_func_start sub_804A940 +sub_804A940: @ 804A940 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x10] + cmp r0, 0 + beq _0804A95C + adds r0, r4, 0 + adds r0, 0x12 + ldr r1, [r4, 0x8] + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + movs r0, 0 + strb r0, [r4, 0x10] +_0804A95C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804A940 + + thumb_func_start sub_804A964 +sub_804A964: @ 804A964 + movs r2, 0 + strb r2, [r0, 0x10] + str r1, [r0, 0x8] + bx lr + thumb_func_end sub_804A964 + + thumb_func_start sub_804A96C +sub_804A96C: @ 804A96C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + mov r10, r3 + ldr r0, [sp, 0x24] + ldr r3, [sp, 0x28] + ldr r4, [sp, 0x2C] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r3, 24 + lsrs r3, 24 + mov r12, r3 + lsls r4, 16 + lsrs r7, r4, 16 + movs r2, 0 + cmp r2, r12 + bge _0804A9DE + ldr r0, [sp] + adds r0, 0x12 + mov r9, r0 + lsls r0, r6, 5 + adds r0, r1 + mov r8, r0 +_0804A9AA: + movs r4, 0 + adds r6, r2, 0x1 + cmp r4, r5 + bge _0804A9D8 + lsls r1, r2, 5 + add r1, r8 + adds r0, r5, 0 + muls r0, r2 + lsls r0, 1 + mov r2, r10 + adds r3, r0, r2 + lsls r1, 1 + mov r0, r9 + adds r2, r1, r0 +_0804A9C6: + ldrh r1, [r3] + adds r0, r7, 0 + orrs r0, r1 + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, r5 + blt _0804A9C6 +_0804A9D8: + adds r2, r6, 0 + cmp r2, r12 + blt _0804A9AA +_0804A9DE: + movs r0, 0x1 + ldr r1, [sp] + strb r0, [r1, 0x10] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804A96C + + thumb_func_start sub_804A9F4 +sub_804A9F4: @ 804A9F4 + push {lr} + bl sub_8071EF4 + pop {r0} + bx r0 + thumb_func_end sub_804A9F4 + + thumb_func_start sub_804AA00 +sub_804AA00: @ 804AA00 + push {lr} + bl sub_8071EF4 + pop {r0} + bx r0 + thumb_func_end sub_804AA00 + + thumb_func_start sub_804AA0C +sub_804AA0C: @ 804AA0C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + ldr r0, _0804AA7C + mov r8, r0 + ldr r0, [r0] + adds r0, 0x4 + ldr r2, _0804AA80 + lsrs r4, 22 + adds r1, r4, r2 + ldrb r6, [r1] + adds r1, r2, 0x1 + adds r1, r4, r1 + ldrb r5, [r1] + adds r1, r2, 0x2 + adds r1, r4, r1 + ldrb r3, [r1] + adds r2, 0x3 + adds r2, r4, r2 + ldrb r1, [r2] + str r1, [sp] + adds r1, r6, 0 + adds r2, r5, 0 + bl AddTextPrinterParametrized + mov r1, r8 + ldr r3, [r1] + adds r0, r3, 0x4 + ldr r1, _0804AA84 + adds r4, r1 + ldr r1, [r4] + adds r3, 0x7A + movs r4, 0xC0 + lsls r4, 1 + adds r2, r4, 0 + ldrb r3, [r3] + adds r2, r3 + adds r6, 0x1 + lsls r6, 24 + lsrs r6, 24 + adds r5, 0x1 + lsls r5, 24 + lsrs r5, 24 + str r5, [sp] + adds r3, r6, 0 + bl sub_8003460 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804AA7C: .4byte 0x03004824 +_0804AA80: .4byte gUnknown_0820C308 +_0804AA84: .4byte gUnknown_0820C2F0 + thumb_func_end sub_804AA0C + + thumb_func_start sub_804AA88 +sub_804AA88: @ 804AA88 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r3, 0 + ldr r5, _0804AAD0 + ldr r0, _0804AAD4 + mov r8, r0 + movs r4, 0 + ldr r2, _0804AAD8 + mov r12, r2 + movs r7, 0x8E + lsls r7, 4 + movs r6, 0xFF +_0804AAA2: + ldr r0, [r5] + lsls r2, r3, 3 + adds r0, r2 + add r0, r8 + strb r4, [r0] + ldr r1, [r5] + adds r1, r2 + mov r2, r12 + adds r0, r1, r2 + strh r4, [r0] + adds r1, r7 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + adds r3, 0x1 + cmp r3, 0x3 + ble _0804AAA2 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AAD0: .4byte 0x03004824 +_0804AAD4: .4byte 0x000008dc +_0804AAD8: .4byte 0x000008de + thumb_func_end sub_804AA88 + + thumb_func_start sub_804AADC +sub_804AADC: @ 804AADC + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 24 + lsrs r6, r1, 24 + movs r3, 0 + ldr r4, _0804AB18 + mov r12, r4 + ldr r7, _0804AB1C +_0804AAEE: + mov r1, r12 + ldr r0, [r1] + lsls r1, r3, 3 + adds r2, r0, r1 + adds r0, r2, r7 + ldrb r0, [r0] + cmp r0, 0 + bne _0804AB24 + ldr r3, _0804AB20 + adds r0, r2, r3 + strh r5, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strb r6, [r0] + ldr r0, [r4] + adds r0, r1 + ldr r1, _0804AB1C + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + b _0804AB2A + .align 2, 0 +_0804AB18: .4byte 0x03004824 +_0804AB1C: .4byte 0x000008dc +_0804AB20: .4byte 0x000008de +_0804AB24: + adds r3, 0x1 + cmp r3, 0x3 + ble _0804AAEE +_0804AB2A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804AADC + + thumb_func_start sub_804AB30 +sub_804AB30: @ 804AB30 + push {r4,r5,lr} + movs r4, 0 + ldr r3, _0804AB58 +_0804AB36: + ldr r0, [r3] + lsls r1, r4, 3 + adds r2, r0, r1 + ldr r5, _0804AB5C + adds r0, r2, r5 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0 + beq _0804ABE2 + ldr r0, _0804AB60 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _0804AB64 + subs r0, 0x1 + strh r0, [r1] + b _0804ABE2 + .align 2, 0 +_0804AB58: .4byte 0x03004824 +_0804AB5C: .4byte 0x000008dc +_0804AB60: .4byte 0x000008de +_0804AB64: + movs r1, 0x8E + lsls r1, 4 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _0804ABD2 + lsls r0, 2 + ldr r1, _0804AB7C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804AB7C: .4byte _0804AB80 + .align 2, 0 +_0804AB80: + .4byte _0804AB98 + .4byte _0804ABB4 + .4byte _0804ABBC + .4byte _0804ABC4 + .4byte _0804ABC4 + .4byte _0804ABCC +_0804AB98: + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0804ABB0 + ldr r1, [r1] + adds r1, 0x8C + movs r2, 0x14 + bl SendBlock + b _0804ABD2 + .align 2, 0 +_0804ABB0: .4byte 0x03004824 +_0804ABB4: + movs r0, 0 + bl sub_804AA0C + b _0804ABD2 +_0804ABBC: + movs r0, 0x2 + bl sub_804AA0C + b _0804ABD2 +_0804ABC4: + movs r0, 0x3 + bl sub_804AA0C + b _0804ABD2 +_0804ABCC: + movs r0, 0x3 + bl sub_804AA0C +_0804ABD2: + ldr r0, _0804ABF0 + ldr r1, [r0] + adds r1, r5 + ldr r2, _0804ABF4 + adds r1, r2 + movs r2, 0 + strb r2, [r1] + adds r3, r0, 0 +_0804ABE2: + adds r4, 0x1 + cmp r4, 0x3 + ble _0804AB36 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804ABF0: .4byte 0x03004824 +_0804ABF4: .4byte 0x000008dc + thumb_func_end sub_804AB30 + + thumb_func_start sub_804ABF8 +sub_804ABF8: @ 804ABF8 + push {r4,lr} + ldr r0, _0804AC14 + ldr r1, [r0] + adds r1, 0xB4 + ldrb r1, [r1] + subs r1, 0x8 + adds r4, r0, 0 + cmp r1, 0x8 + bhi _0804ACB0 + lsls r0, r1, 2 + ldr r1, _0804AC18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804AC14: .4byte 0x03004824 +_0804AC18: .4byte _0804AC1C + .align 2, 0 +_0804AC1C: + .4byte _0804AC40 + .4byte _0804ACB0 + .4byte _0804ACB0 + .4byte _0804ACB0 + .4byte _0804ACB0 + .4byte _0804AC60 + .4byte _0804AC74 + .4byte _0804AC88 + .4byte _0804AC9A +_0804AC40: + ldr r0, [r4] + adds r0, 0xB4 + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _0804AC5C + adds r0, r1 + bl LoadSpriteSheet + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0x7E + strh r0, [r2] + b _0804ACC2 + .align 2, 0 +_0804AC5C: .4byte gUnknown_0820C07C +_0804AC60: + ldr r0, _0804AC6C + bl LoadSpritePalette + ldr r0, _0804AC70 + ldr r1, [r0] + b _0804ACC2 + .align 2, 0 +_0804AC6C: .4byte gUnknown_0820C0E4 +_0804AC70: .4byte 0x03004824 +_0804AC74: + ldr r0, _0804AC80 + bl LoadSpritePalette + ldr r0, _0804AC84 + ldr r1, [r0] + b _0804ACC2 + .align 2, 0 +_0804AC80: .4byte gUnknown_0820C12C +_0804AC84: .4byte 0x03004824 +_0804AC88: + ldr r0, _0804ACA8 + bl LoadSpriteSheet + ldr r0, _0804ACAC + ldr r1, [r0] + adds r1, 0xB4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804AC9A: + ldr r0, _0804ACAC + ldr r0, [r0] + adds r0, 0xB4 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _0804ACCC + .align 2, 0 +_0804ACA8: .4byte gUnknown_0820C124 +_0804ACAC: .4byte 0x03004824 +_0804ACB0: + ldr r0, [r4] + adds r0, 0xB4 + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _0804ACD4 + adds r0, r1 + bl LoadSpriteSheet + ldr r1, [r4] +_0804ACC2: + adds r1, 0xB4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 +_0804ACCC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0804ACD4: .4byte gUnknown_0820C07C + thumb_func_end sub_804ABF8 + + thumb_func_start sub_804ACD8 +sub_804ACD8: @ 804ACD8 + push {r4,lr} + adds r4, r0, 0 + lsls r3, r2, 24 + lsrs r3, 24 + ldr r0, _0804ACF0 + adds r2, r4, 0 + bl sub_804AFB8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804ACF0: .4byte gWindowConfig_81E725C + thumb_func_end sub_804ACD8 + + thumb_func_start sub_804ACF4 +sub_804ACF4: @ 804ACF4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0 + beq _0804AD0C + cmp r0, 0x1 + beq _0804ADA0 + b _0804AE2C +_0804AD0C: + movs r7, 0 + ldr r1, _0804AD4C + ldr r0, [r1] + adds r0, 0x42 + ldrb r0, [r0] + cmp r7, r0 + blt _0804AD1C + b _0804AE2C +_0804AD1C: + adds r6, r1, 0 + movs r5, 0 + mov r9, r5 +_0804AD22: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _0804AD50 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl PokemonGetField + adds r1, r0, 0 + cmp r1, 0x1 + bne _0804AD54 + ldr r0, [r6] + adds r0, 0x51 + adds r0, r5 + mov r2, r9 + strb r2, [r0] + ldr r0, [r6] + adds r0, 0x5D + adds r0, r5 + b _0804AD84 + .align 2, 0 +_0804AD4C: .4byte 0x03004824 +_0804AD50: .4byte 0x03004360 +_0804AD54: + adds r0, r4, 0 + movs r1, 0x39 + bl PokemonGetField + adds r1, r0, 0 + cmp r1, 0 + bne _0804AD72 + ldr r0, [r6] + adds r0, 0x51 + adds r0, r5 + strb r1, [r0] + ldr r0, [r6] + adds r0, 0x5D + adds r0, r5 + b _0804AD84 +_0804AD72: + ldr r0, [r6] + adds r0, 0x51 + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r6] + adds r0, 0x5D + adds r0, r5 + mov r1, r9 +_0804AD84: + strb r1, [r0] + ldr r0, _0804AD9C + adds r5, 0x1 + adds r7, 0x1 + ldr r0, [r0] + adds r0, 0x42 + add r0, r8 + ldrb r0, [r0] + cmp r7, r0 + blt _0804AD22 + b _0804AE2C + .align 2, 0 +_0804AD9C: .4byte 0x03004824 +_0804ADA0: + movs r7, 0 + ldr r1, _0804ADE0 + ldr r0, [r1] + adds r0, 0x43 + ldrb r0, [r0] + cmp r7, r0 + bge _0804AE2C + adds r6, r1, 0 + movs r5, 0x6 + movs r2, 0 + mov r9, r2 +_0804ADB6: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _0804ADE4 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl PokemonGetField + adds r1, r0, 0 + cmp r1, 0x1 + bne _0804ADE8 + ldr r0, [r6] + adds r0, 0x51 + adds r0, r5 + mov r2, r9 + strb r2, [r0] + ldr r0, [r6] + adds r0, 0x5D + adds r0, r5 + b _0804AE18 + .align 2, 0 +_0804ADE0: .4byte 0x03004824 +_0804ADE4: .4byte 0x030045c0 +_0804ADE8: + adds r0, r4, 0 + movs r1, 0x39 + bl PokemonGetField + adds r1, r0, 0 + cmp r1, 0 + bne _0804AE06 + ldr r0, [r6] + adds r0, 0x51 + adds r0, r5 + strb r1, [r0] + ldr r0, [r6] + adds r0, 0x5D + adds r0, r5 + b _0804AE18 +_0804AE06: + ldr r0, [r6] + adds r0, 0x51 + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r6] + adds r0, 0x5D + adds r0, r5 + mov r1, r9 +_0804AE18: + strb r1, [r0] + ldr r0, _0804AE38 + adds r5, 0x1 + adds r7, 0x1 + ldr r0, [r0] + adds r0, 0x42 + add r0, r8 + ldrb r0, [r0] + cmp r7, r0 + blt _0804ADB6 +_0804AE2C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AE38: .4byte 0x03004824 + thumb_func_end sub_804ACF4 + + thumb_func_start sub_804AE3C +sub_804AE3C: @ 804AE3C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0804AE4C + cmp r0, 0x1 + beq _0804AEAC + b _0804AF00 +_0804AE4C: + movs r6, 0 + ldr r1, _0804AEA4 + ldr r0, [r1] + adds r0, 0x42 + ldrb r0, [r0] + cmp r6, r0 + bcs _0804AF00 + adds r7, r1, 0 +_0804AE5C: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _0804AEA8 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl PokemonGetField + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x3A + bl PokemonGetField + adds r1, r0, 0 + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl sub_8046200 + ldr r1, [r7] + adds r1, 0x69 + adds r1, r6 + strb r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, [r7] + adds r0, 0x42 + ldrb r0, [r0] + cmp r6, r0 + bcc _0804AE5C + b _0804AF00 + .align 2, 0 +_0804AEA4: .4byte 0x03004824 +_0804AEA8: .4byte 0x03004360 +_0804AEAC: + movs r6, 0 + ldr r1, _0804AF08 + ldr r0, [r1] + adds r0, 0x43 + ldrb r0, [r0] + cmp r6, r0 + bcs _0804AF00 + adds r7, r1, 0 +_0804AEBC: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _0804AF0C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl PokemonGetField + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x3A + bl PokemonGetField + adds r1, r0, 0 + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl sub_8046200 + ldr r1, [r7] + adds r1, 0x6F + adds r1, r6 + strb r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, [r7] + adds r0, 0x43 + ldrb r0, [r0] + cmp r6, r0 + bcc _0804AEBC +_0804AF00: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AF08: .4byte 0x03004824 +_0804AF0C: .4byte 0x030045c0 + thumb_func_end sub_804AE3C + + thumb_func_start sub_804AF10 +sub_804AF10: @ 804AF10 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 +_0804AF18: + movs r4, 0 + ldr r2, _0804AF7C + ldr r0, [r2] + adds r0, 0x42 + adds r0, r5 + adds r1, r5, 0x1 + mov r8, r1 + ldrb r0, [r0] + cmp r4, r0 + bge _0804AF6A + adds r6, r2, 0 + lsls r0, r5, 1 + adds r0, r5 + lsls r7, r0, 1 +_0804AF34: + ldr r2, [r6] + adds r3, r4, r7 + adds r0, r2, 0 + adds r0, 0x34 + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804AF80 + adds r0, r1 + adds r2, 0x69 + adds r2, r3 + ldrb r2, [r2] + movs r1, 0x4 + subs r1, r2 + lsls r1, 24 + lsrs r1, 24 + bl sub_809D824 + adds r4, 0x1 + ldr r0, [r6] + adds r0, 0x42 + adds r0, r5 + ldrb r0, [r0] + cmp r4, r0 + blt _0804AF34 +_0804AF6A: + mov r5, r8 + cmp r5, 0x1 + ble _0804AF18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AF7C: .4byte 0x03004824 +_0804AF80: .4byte 0x02020004 + thumb_func_end sub_804AF10 + + thumb_func_start sub_804AF84 +sub_804AF84: @ 804AF84 + push {r4,lr} + movs r2, 0 + ldr r4, _0804AFB0 + ldr r3, _0804AFB4 +_0804AF8C: + adds r1, r2, r4 + ldrb r0, [r1] + cmp r0, 0 + bne _0804AFA2 + ldr r0, [r3] + adds r0, 0xB5 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0804AFA2 + strb r0, [r1] +_0804AFA2: + adds r2, 0x1 + cmp r2, 0xA + ble _0804AF8C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804AFB0: .4byte 0x02028844 +_0804AFB4: .4byte 0x03004824 + thumb_func_end sub_804AF84 + + thumb_func_start sub_804AFB8 +sub_804AFB8: @ 804AFB8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r9, r0 + mov r8, r1 + mov r10, r2 + lsls r3, 24 + lsrs r6, r3, 24 + adds r0, r6, 0x3 + lsrs r6, r0, 2 + ldr r7, _0804B054 + mov r0, sp + movs r5, 0 + strh r5, [r0] + lsls r4, r6, 6 + movs r0, 0x80 + lsls r0, 17 + orrs r4, r0 + mov r0, sp + adds r1, r7, 0 + adds r2, r4, 0 + bl CpuSet + mov r0, sp + adds r0, 0x2 + strh r5, [r0] + mov r2, r9 + ldrb r1, [r2, 0xD] + lsls r1, 5 + adds r1, r7 + adds r2, r4, 0 + bl CpuSet + mov r0, r9 + adds r1, r7, 0 + mov r2, r10 + bl sub_8004E3C + movs r4, 0 + cmp r4, r6 + bcs _0804B042 +_0804B010: + lsls r0, r4, 7 + adds r0, r7, r0 + lsls r1, r4, 8 + add r1, r8 + movs r2, 0x40 + bl CpuSet + lsls r0, r4, 2 + mov r1, r9 + ldrb r1, [r1, 0xD] + adds r0, r1 + lsls r0, 5 + adds r0, r7, r0 + lsls r1, r4, 3 + adds r1, 0x4 + lsls r1, 5 + add r1, r8 + movs r2, 0x40 + bl CpuSet + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _0804B010 +_0804B042: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804B054: .4byte 0x02039360 + thumb_func_end sub_804AFB8 + + thumb_func_start sub_804B058 +sub_804B058: @ 804B058 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0804B074 + movs r0, 0x17 + bl audio_play + movs r0, 0 + strh r0, [r4, 0x2E] +_0804B074: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804B058 + + thumb_func_start sub_804B07C +sub_804B07C: @ 804B07C + push {lr} + adds r2, r0, 0 + movs r0, 0x30 + ldrsh r1, [r2, r0] + cmp r1, 0 + bne _0804B0B2 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _0804B098 + strh r1, [r2, 0x2E] +_0804B098: + movs r1, 0x2E + ldrsh r0, [r2, r1] + lsls r0, 1 + ldr r1, _0804B0B8 + adds r0, r1 + ldrb r1, [r2, 0x5] + lsrs r1, 4 + adds r1, 0x10 + lsls r1, 4 + adds r1, 0x4 + movs r2, 0x2 + bl LoadPalette +_0804B0B2: + pop {r0} + bx r0 + .align 2, 0 +_0804B0B8: .4byte gUnknown_08215A98 + thumb_func_end sub_804B07C + + thumb_func_start sub_804B0BC +sub_804B0BC: @ 804B0BC + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + adds r1, 0x1 + strh r1, [r2, 0x2E] + ldrh r0, [r2, 0x26] + adds r0, 0x1 + strh r0, [r2, 0x26] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0xA + bne _0804B0DA + adds r0, r2, 0 + bl DestroySprite +_0804B0DA: + pop {r0} + bx r0 + thumb_func_end sub_804B0BC + + thumb_func_start sub_804B0E0 +sub_804B0E0: @ 804B0E0 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + adds r1, 0x1 + strh r1, [r2, 0x2E] + ldrh r0, [r2, 0x26] + subs r0, 0x1 + strh r0, [r2, 0x26] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0xA + bne _0804B0FE + adds r0, r2, 0 + bl DestroySprite +_0804B0FE: + pop {r0} + bx r0 + thumb_func_end sub_804B0E0 + + thumb_func_start sub_804B104 +sub_804B104: @ 804B104 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bne _0804B120 + movs r0, 0xCC + bl audio_play + movs r0, 0 + strh r0, [r4, 0x2E] +_0804B120: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804B104 + + thumb_func_start sub_804B128 +sub_804B128: @ 804B128 + push {r4,r5,lr} + sub sp, 0x20 + ldr r0, _0804B1B4 + ldr r0, [r0] + mov r12, r0 + movs r0, 0x82 + lsls r0, 1 + add r0, r12 + ldrh r1, [r0] + lsls r1, 8 + movs r0, 0x83 + lsls r0, 1 + add r0, r12 + ldrh r2, [r0] + lsls r2, 8 + movs r0, 0x86 + lsls r0, 1 + add r0, r12 + movs r4, 0 + ldrsh r3, [r0, r4] + movs r0, 0x87 + lsls r0, 1 + add r0, r12 + movs r5, 0 + ldrsh r0, [r0, r5] + str r0, [sp] + movs r4, 0x8C + lsls r4, 1 + add r4, r12 + movs r5, 0 + ldrsh r0, [r4, r5] + str r0, [sp, 0x4] + movs r5, 0 + ldrsh r0, [r4, r5] + str r0, [sp, 0x8] + movs r0, 0x8E + lsls r0, 1 + add r0, r12 + ldrh r0, [r0] + str r0, [sp, 0xC] + add r0, sp, 0x10 + bl sub_8040F34 + ldr r1, _0804B1B8 + add r0, sp, 0x10 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + add r0, sp, 0x10 + ldrh r0, [r0, 0x2] + strh r0, [r1] + adds r1, 0x2 + add r0, sp, 0x10 + ldrh r0, [r0, 0x4] + strh r0, [r1] + adds r1, 0x2 + add r0, sp, 0x10 + ldrh r0, [r0, 0x6] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [sp, 0x18] + str r0, [r1] + adds r1, 0x4 + ldr r0, [sp, 0x1C] + str r0, [r1] + add sp, 0x20 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804B1B4: .4byte 0x03004828 +_0804B1B8: .4byte 0x04000020 + thumb_func_end sub_804B128 + + thumb_func_start sub_804B1BC +sub_804B1BC: @ 804B1BC + push {lr} + ldr r1, _0804B1FC + ldr r0, _0804B200 + ldr r2, [r0] + movs r3, 0x88 + lsls r3, 1 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + movs r0, 0x80 + lsls r0, 19 + ldrh r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0804B208 + ldr r1, _0804B204 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + b _0804B20C + .align 2, 0 +_0804B1FC: .4byte 0x04000016 +_0804B200: .4byte 0x03004828 +_0804B204: .4byte 0x0400001a +_0804B208: + bl sub_804B128 +_0804B20C: + pop {r0} + bx r0 + thumb_func_end sub_804B1BC + + thumb_func_start sub_804B210 +sub_804B210: @ 804B210 + push {lr} + bl sub_804B1BC + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_804B210 + + thumb_func_start sub_804B228 +sub_804B228: @ 804B228 + push {r4,lr} + ldr r4, _0804B248 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xB4 + movs r3, 0 + movs r0, 0 + strh r0, [r2] + adds r1, 0xB2 + strb r3, [r1] + ldr r0, [r4] + adds r0, 0xB3 + strb r3, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804B248: .4byte 0x03004828 + thumb_func_end sub_804B228 + + thumb_func_start sub_804B24C +sub_804B24C: @ 804B24C + push {r4,r5,lr} + ldr r1, _0804B270 + ldr r2, [r1] + adds r0, r2, 0 + adds r0, 0xB2 + adds r3, r2, 0 + adds r3, 0xB3 + ldrb r0, [r0] + adds r5, r1, 0 + ldrb r3, [r3] + cmp r0, r3 + bne _0804B274 + adds r1, r2, 0 + adds r1, 0xB4 + ldrh r0, [r1] + adds r0, 0x1 + b _0804B27A + .align 2, 0 +_0804B270: .4byte 0x03004828 +_0804B274: + adds r1, r2, 0 + adds r1, 0xB4 + movs r0, 0 +_0804B27A: + strh r0, [r1] + adds r4, r5, 0 + ldr r3, [r4] + adds r2, r3, 0 + adds r2, 0xB4 + ldrh r0, [r2] + cmp r0, 0xB4 + bls _0804B29C + movs r1, 0 + movs r0, 0 + strh r0, [r2] + adds r0, r3, 0 + adds r0, 0xB3 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xB2 + strb r1, [r0] +_0804B29C: + ldr r0, [r5] + adds r1, r0, 0 + adds r1, 0xB2 + ldrb r1, [r1] + adds r0, 0xB3 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_804B24C + + thumb_func_start sub_804B2B0 +sub_804B2B0: @ 804B2B0 + push {lr} + ldr r0, _0804B2C0 + ldrb r0, [r0] + cmp r0, 0 + bne _0804B2C4 + movs r0, 0 + b _0804B2CC + .align 2, 0 +_0804B2C0: .4byte 0x03002fa4 +_0804B2C4: + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 +_0804B2CC: + pop {r1} + bx r1 + thumb_func_end sub_804B2B0 + + thumb_func_start sub_804B2D0 +sub_804B2D0: @ 804B2D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r4, 0 + mov r10, r4 + cmp r7, 0 + bne _0804B2FC + ldr r0, _0804B324 + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0804B328 + adds r1, r0 + mov r10, r1 + movs r4, 0x1 +_0804B2FC: + cmp r7, 0x1 + bne _0804B31A + ldr r0, _0804B324 + ldrb r0, [r0, 0x1] + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r1, r0 + ldr r0, _0804B32C + adds r1, r0 + mov r10, r1 + movs r4, 0x3 +_0804B31A: + cmp r5, 0 + beq _0804B330 + cmp r5, 0x1 + beq _0804B3A4 + b _0804B3FA + .align 2, 0 +_0804B324: .4byte 0x020297d8 +_0804B328: .4byte 0x03004360 +_0804B32C: .4byte 0x030045c0 +_0804B330: + mov r0, r10 + movs r1, 0x41 + bl PokemonGetField + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r0, r10 + movs r1, 0 + bl PokemonGetField + mov r9, r0 + lsls r0, r5, 3 + ldr r1, _0804B390 + adds r0, r1 + ldr r1, _0804B394 + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + ldr r3, _0804B398 + ldr r6, _0804B39C + lsls r7, 1 + mov r8, r7 + mov r4, r8 + adds r4, 0x1 + lsls r4, 2 + adds r4, r6 + ldr r4, [r4] + str r4, [sp] + str r5, [sp, 0x4] + mov r4, r9 + str r4, [sp, 0x8] + bl sub_800D334 + mov r0, r10 + bl sub_8040990 + bl LoadCompressedObjectPalette + ldr r0, _0804B3A0 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 1 + adds r0, r1 + add r0, r8 + strh r5, [r0] + b _0804B3FA + .align 2, 0 +_0804B390: .4byte gMonFrontPicTable +_0804B394: .4byte gMonFrontPicCoords +_0804B398: .4byte 0x02000000 +_0804B39C: .4byte gUnknown_081FAF4C +_0804B3A0: .4byte 0x03004828 +_0804B3A4: + mov r0, r10 + bl sub_8040990 + ldrh r0, [r0, 0x4] + adds r1, r4, 0 + bl gpu_pal_obj_decompress_and_apply + ldr r0, _0804B40C + movs r1, 0x78 + movs r2, 0x3C + movs r3, 0x6 + bl CreateSprite + ldr r4, _0804B410 + ldr r1, [r4] + adds r1, 0xB8 + adds r1, r7 + strb r0, [r1] + ldr r3, _0804B414 + ldr r0, [r4] + adds r0, 0xB8 + adds r0, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xB8 + adds r0, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r1, _0804B418 + str r1, [r0] +_0804B3FA: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804B40C: .4byte 0x02024e8c +_0804B410: .4byte 0x03004828 +_0804B414: .4byte 0x02020004 +_0804B418: .4byte SpriteCallbackDummy + thumb_func_end sub_804B2D0 + + thumb_func_start sub_804B41C +sub_804B41C: @ 804B41C + push {r4-r6,lr} + sub sp, 0x4 + ldr r1, _0804B43C + ldr r2, _0804B440 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xC + bls _0804B430 + b _0804B76E +_0804B430: + lsls r0, 2 + ldr r1, _0804B444 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804B43C: .4byte 0x03001770 +_0804B440: .4byte 0x0000043c +_0804B444: .4byte _0804B448 + .align 2, 0 +_0804B448: + .4byte _0804B47C + .4byte _0804B5AC + .4byte _0804B5D4 + .4byte _0804B5FC + .4byte _0804B648 + .4byte _0804B678 + .4byte _0804B6A8 + .4byte _0804B6B2 + .4byte _0804B6CC + .4byte _0804B6E4 + .4byte _0804B71C + .4byte _0804B726 + .4byte _0804B75C +_0804B47C: + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + bl ResetTasks + bl CloseLink + ldr r6, _0804B570 + ldr r5, _0804B574 + str r5, [r6] + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0804B578 + bl SetVBlankCallback + bl sub_804B228 + ldr r4, _0804B57C + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, [r6] + adds r0, 0x4 + adds r1, r4, 0 + bl InitWindowFromConfig + movs r0, 0x2 + bl sub_8064EF4 + ldr r1, [r6] + adds r1, 0x34 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x4 + bl sub_8064F08 + bl sub_8071EF4 + ldr r1, _0804B580 + ldr r4, _0804B584 + adds r0, r4, 0 + strh r0, [r1] + ldr r1, _0804B588 + ldr r0, _0804B58C + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _0804B590 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _0804B594 + ldr r1, _0804B598 + adds r5, r1 + movs r2, 0x80 + lsls r2, 4 + adds r1, r5, 0 + bl CpuSet + ldr r1, _0804B59C + ldr r0, _0804B5A0 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _0804B5A4 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _0804B5A8 + movs r1, 0 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xB6 + movs r2, 0 + strh r2, [r0] + adds r0, 0xE + strh r2, [r0] + movs r4, 0x8F + lsls r4, 1 + adds r1, r4 + movs r0, 0x1 + strb r0, [r1] + ldr r3, [r6] + movs r1, 0x82 + lsls r1, 1 + adds r0, r3, r1 + movs r1, 0x40 + strh r1, [r0] + subs r4, 0x18 + adds r0, r3, r4 + strh r1, [r0] + adds r1, 0xC8 + adds r0, r3, r1 + strh r2, [r0] + adds r4, 0x4 + adds r0, r3, r4 + strh r2, [r0] + movs r0, 0x86 + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0x78 + strh r0, [r1] + adds r4, 0x4 + adds r1, r3, r4 + movs r0, 0x50 + strh r0, [r1] + adds r0, 0xC8 + adds r1, r3, r0 + subs r0, 0x18 + strh r0, [r1] + movs r1, 0x8E + lsls r1, 1 + adds r0, r3, r1 + strh r2, [r0] + b _0804B76E + .align 2, 0 +_0804B570: .4byte 0x03004828 +_0804B574: .4byte 0x0201f000 +_0804B578: .4byte sub_804B210 +_0804B57C: .4byte gWindowConfig_81E6F84 +_0804B580: .4byte 0x03002b74 +_0804B584: .4byte 0x00001144 +_0804B588: .4byte 0x03001770 +_0804B58C: .4byte 0x0000043c +_0804B590: .4byte gUnknown_08D00000 +_0804B594: .4byte gUnknown_08D00524 +_0804B598: .4byte 0xfffe1000 +_0804B59C: .4byte 0x06002800 +_0804B5A0: .4byte 0x040000d4 +_0804B5A4: .4byte 0x80000280 +_0804B5A8: .4byte gUnknown_08D004E0 +_0804B5AC: + bl OpenLink + ldr r1, _0804B5C8 + ldr r2, _0804B5CC + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, _0804B5D0 + ldr r0, [r0] + adds r0, 0xC0 + str r2, [r0] + b _0804B76E + .align 2, 0 +_0804B5C8: .4byte 0x03001770 +_0804B5CC: .4byte 0x0000043c +_0804B5D0: .4byte 0x03004828 +_0804B5D4: + ldr r0, _0804B5F4 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bhi _0804B5E8 + b _0804B76E +_0804B5E8: + movs r0, 0 + str r0, [r1] + ldr r4, _0804B5F8 + adds r1, r2, r4 + b _0804B74C + .align 2, 0 +_0804B5F4: .4byte 0x03004828 +_0804B5F8: .4byte 0x0000043c +_0804B5FC: + bl IsLinkMaster + lsls r0, 24 + cmp r0, 0 + bne _0804B608 + b _0804B746 +_0804B608: + bl GetLinkPlayerCount_2 + adds r4, r0, 0 + bl sub_800820C + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bcs _0804B61C + b _0804B76E +_0804B61C: + ldr r0, _0804B63C + ldr r1, [r0] + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x1E + bhi _0804B62E + b _0804B76E +_0804B62E: + bl sub_8007F4C + ldr r1, _0804B640 + ldr r0, _0804B644 + adds r1, r0 + b _0804B74C + .align 2, 0 +_0804B63C: .4byte 0x03004828 +_0804B640: .4byte 0x03001770 +_0804B644: .4byte 0x0000043c +_0804B648: + bl sub_804B24C + ldr r0, _0804B66C + ldrb r0, [r0] + cmp r0, 0x1 + beq _0804B656 + b _0804B76E +_0804B656: + bl IsLinkPlayerDataExchangeComplete + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0804B664 + b _0804B76E +_0804B664: + ldr r1, _0804B670 + ldr r4, _0804B674 + adds r1, r4 + b _0804B74C + .align 2, 0 +_0804B66C: .4byte 0x03002fa4 +_0804B670: .4byte 0x03001770 +_0804B674: .4byte 0x0000043c +_0804B678: + ldr r2, _0804B69C + ldr r0, [r2] + adds r0, 0x9C + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + adds r0, 0x9D + strb r1, [r0] + ldr r0, [r2] + adds r0, 0xBD + strb r1, [r0] + movs r0, 0 + bl sub_804B2D0 + ldr r1, _0804B6A0 + ldr r0, _0804B6A4 + adds r1, r0 + b _0804B74C + .align 2, 0 +_0804B69C: .4byte 0x03004828 +_0804B6A0: .4byte 0x03001770 +_0804B6A4: .4byte 0x0000043c +_0804B6A8: + movs r0, 0 + movs r1, 0x1 + bl sub_804B2D0 + b _0804B746 +_0804B6B2: + movs r0, 0x1 + movs r1, 0 + bl sub_804B2D0 + ldr r1, _0804B6C4 + ldr r4, _0804B6C8 + adds r1, r4 + b _0804B74C + .align 2, 0 +_0804B6C4: .4byte 0x03001770 +_0804B6C8: .4byte 0x0000043c +_0804B6CC: + movs r0, 0x1 + movs r1, 0x1 + bl sub_804B2D0 + ldr r1, _0804B6DC + ldr r0, _0804B6E0 + adds r1, r0 + b _0804B74C + .align 2, 0 +_0804B6DC: .4byte 0x03001770 +_0804B6E0: .4byte 0x0000043c +_0804B6E4: + bl sub_804C164 + ldr r0, _0804B704 + bl LoadSpriteSheet + ldr r0, _0804B708 + bl LoadSpritePalette + ldr r1, _0804B70C + ldr r2, _0804B710 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0804B714 + ldr r4, _0804B718 + adds r1, r4 + b _0804B74C + .align 2, 0 +_0804B704: .4byte gUnknown_0821594C +_0804B708: .4byte gUnknown_08215954 +_0804B70C: .4byte 0x0400000a +_0804B710: .4byte 0x00000502 +_0804B714: .4byte 0x03001770 +_0804B718: .4byte 0x0000043c +_0804B71C: + ldr r0, _0804B754 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804B726: + movs r0, 0x5 + bl sub_804BBE8 + movs r0, 0 + bl sub_804BBE8 + bl sub_804C1A8 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_0804B746: + ldr r1, _0804B758 + ldr r2, _0804B754 + adds r1, r2 +_0804B74C: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804B76E + .align 2, 0 +_0804B754: .4byte 0x0000043c +_0804B758: .4byte 0x03001770 +_0804B75C: + ldr r0, _0804B788 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804B76E + ldr r0, _0804B78C + bl SetMainCallback2 +_0804B76E: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804B788: .4byte 0x0202f388 +_0804B78C: .4byte sub_804DB84 + thumb_func_end sub_804B41C + + thumb_func_start sub_804B790 +sub_804B790: @ 804B790 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x10 + ldr r1, _0804B7B4 + ldr r2, _0804B7B8 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xC + bls _0804B7A8 + b _0804B9F2 +_0804B7A8: + lsls r0, 2 + ldr r1, _0804B7BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804B7B4: .4byte 0x03001770 +_0804B7B8: .4byte 0x0000043c +_0804B7BC: .4byte _0804B7C0 + .align 2, 0 +_0804B7C0: + .4byte _0804B7F4 + .4byte _0804B9F2 + .4byte _0804B9F2 + .4byte _0804B9F2 + .4byte _0804B9F2 + .4byte _0804B914 + .4byte _0804B92C + .4byte _0804B944 + .4byte _0804B94E + .4byte _0804B968 + .4byte _0804B9A0 + .4byte _0804B9AA + .4byte _0804B9E0 +_0804B7F4: + ldr r1, _0804B8E0 + ldr r0, _0804B8E4 + ldrh r0, [r0] + movs r6, 0 + strb r0, [r1] + movs r0, 0x6 + strb r0, [r1, 0x1] + ldr r4, _0804B8E8 + ldr r1, _0804B8EC + adds r0, r4, 0 + bl StringCopy + ldr r0, _0804B8F0 + movs r1, 0x7 + add r2, sp, 0x4 + bl PokemonGetField + adds r4, 0x1C + adds r0, r4, 0 + add r1, sp, 0x4 + bl StringCopy + movs r0, 0x80 + lsls r0, 19 + movs r3, 0 + mov r8, r3 + strh r6, [r0] + bl ResetTasks + ldr r5, _0804B8F4 + ldr r0, _0804B8F8 + str r0, [r5] + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0804B8FC + bl SetVBlankCallback + bl sub_804B228 + ldr r4, _0804B900 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, [r5] + adds r0, 0x4 + adds r1, r4, 0 + bl InitWindowFromConfig + movs r0, 0x2 + bl sub_8064EF4 + ldr r1, [r5] + adds r1, 0x34 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0x4 + bl sub_8064F08 + bl sub_8071EF4 + ldr r1, _0804B904 + ldr r2, _0804B908 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, [r5] + movs r3, 0x8F + lsls r3, 1 + adds r0, r3 + mov r1, r8 + strb r1, [r0] + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0xB6 + strh r6, [r0] + adds r0, 0xE + strh r6, [r0] + subs r3, 0x1A + adds r0, r2, r3 + movs r1, 0x40 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + adds r1, 0xC8 + adds r0, r2, r1 + strh r6, [r0] + adds r3, 0x4 + adds r0, r2, r3 + strh r6, [r0] + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0x78 + strh r0, [r1] + adds r3, 0x4 + adds r1, r2, r3 + movs r0, 0x50 + strh r0, [r1] + adds r0, 0xC8 + adds r1, r2, r0 + subs r0, 0x18 + strh r0, [r1] + movs r1, 0x8E + lsls r1, 1 + adds r0, r2, r1 + strh r6, [r0] + adds r0, r2, 0 + adds r0, 0xC0 + str r6, [r0] + ldr r0, _0804B90C + ldr r2, _0804B910 + adds r0, r2 + movs r1, 0x5 + strb r1, [r0] + b _0804B9F2 + .align 2, 0 +_0804B8E0: .4byte 0x020297d8 +_0804B8E4: .4byte 0x0202e8ce +_0804B8E8: .4byte 0x03002978 +_0804B8EC: .4byte 0x02024ea4 +_0804B8F0: .4byte 0x030045c0 +_0804B8F4: .4byte 0x03004828 +_0804B8F8: .4byte 0x0201f000 +_0804B8FC: .4byte sub_804B210 +_0804B900: .4byte gWindowConfig_81E717C +_0804B904: .4byte 0x03002b74 +_0804B908: .4byte 0x00001144 +_0804B90C: .4byte 0x03001770 +_0804B910: .4byte 0x0000043c +_0804B914: + movs r0, 0 + movs r1, 0 + bl sub_804B2D0 + ldr r1, _0804B924 + ldr r3, _0804B928 + adds r1, r3 + b _0804B9D0 + .align 2, 0 +_0804B924: .4byte 0x03001770 +_0804B928: .4byte 0x0000043c +_0804B92C: + movs r0, 0 + movs r1, 0x1 + bl sub_804B2D0 + ldr r1, _0804B93C + ldr r0, _0804B940 + adds r1, r0 + b _0804B9D0 + .align 2, 0 +_0804B93C: .4byte 0x03001770 +_0804B940: .4byte 0x0000043c +_0804B944: + movs r0, 0x1 + movs r1, 0 + bl sub_804B2D0 + b _0804B9CA +_0804B94E: + movs r0, 0x1 + movs r1, 0x1 + bl sub_804B2D0 + ldr r1, _0804B960 + ldr r3, _0804B964 + adds r1, r3 + b _0804B9D0 + .align 2, 0 +_0804B960: .4byte 0x03001770 +_0804B964: .4byte 0x0000043c +_0804B968: + bl sub_804C164 + ldr r0, _0804B988 + bl LoadSpriteSheet + ldr r0, _0804B98C + bl LoadSpritePalette + ldr r1, _0804B990 + ldr r2, _0804B994 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0804B998 + ldr r3, _0804B99C + adds r1, r3 + b _0804B9D0 + .align 2, 0 +_0804B988: .4byte gUnknown_0821594C +_0804B98C: .4byte gUnknown_08215954 +_0804B990: .4byte 0x0400000a +_0804B994: .4byte 0x00000502 +_0804B998: .4byte 0x03001770 +_0804B99C: .4byte 0x0000043c +_0804B9A0: + ldr r0, _0804B9D8 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804B9AA: + movs r0, 0x5 + bl sub_804BBE8 + movs r0, 0 + bl sub_804BBE8 + bl sub_804C1A8 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_0804B9CA: + ldr r1, _0804B9DC + ldr r2, _0804B9D8 + adds r1, r2 +_0804B9D0: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804B9F2 + .align 2, 0 +_0804B9D8: .4byte 0x0000043c +_0804B9DC: .4byte 0x03001770 +_0804B9E0: + ldr r0, _0804BA10 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804B9F2 + ldr r0, _0804BA14 + bl SetMainCallback2 +_0804B9F2: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804BA10: .4byte 0x0202f388 +_0804BA14: .4byte sub_804BBCC + thumb_func_end sub_804B790 + + thumb_func_start sub_804BA18 +sub_804BA18: @ 804BA18 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r1, r0 + ldr r0, _0804BA60 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl PokemonGetField + cmp r0, 0 + bne _0804BA5A + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + bl SpeciesToNationalPokedexNum + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8090D90 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8090D90 +_0804BA5A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804BA60: .4byte 0x03004360 + thumb_func_end sub_804BA18 + + thumb_func_start sub_804BA64 +sub_804BA64: @ 804BA64 + push {lr} + bl GetMultiplayerId + lsls r0, 24 + ldr r2, _0804BA90 + movs r1, 0x80 + lsls r1, 17 + eors r1, r0 + lsrs r1, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x2] + movs r0, 0x80 + lsls r0, 8 + cmp r1, r0 + bne _0804BA8C + bl sub_80690F0 +_0804BA8C: + pop {r0} + bx r0 + .align 2, 0 +_0804BA90: .4byte 0x03002970 + thumb_func_end sub_804BA64 + + thumb_func_start sub_804BA94 +sub_804BA94: @ 804BA94 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r4, 24 + lsrs r4, 24 + movs r5, 0x64 + mov r1, r9 + muls r1, r5 + ldr r0, _0804BB60 + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x40 + bl PokemonGetField + lsls r0, 16 + lsrs r6, r0, 16 + adds r1, r4, 0 + muls r1, r5 + ldr r0, _0804BB64 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x40 + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r6, 0xFF + beq _0804BAE8 + lsls r0, r6, 3 + adds r0, r6 + lsls r0, 2 + ldr r1, _0804BB68 + adds r0, r1 + bl sub_80A2B40 +_0804BAE8: + ldr r4, _0804BB6C + ldr r0, [r4] + adds r0, 0x38 + adds r1, r7, 0 + movs r2, 0x64 + bl memcpy + adds r0, r7, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + ldr r1, [r4] + adds r1, 0x38 + adds r0, r5, 0 + movs r2, 0x64 + bl memcpy + movs r1, 0x46 + mov r0, sp + strb r1, [r0] + adds r0, r7, 0 + movs r1, 0x2D + bl PokemonGetField + cmp r0, 0 + bne _0804BB28 + adds r0, r7, 0 + movs r1, 0x20 + mov r2, sp + bl pokemon_setattr +_0804BB28: + mov r0, r8 + cmp r0, 0xFF + beq _0804BB3E + lsls r1, r0, 3 + add r1, r8 + lsls r1, 2 + ldr r0, _0804BB70 + adds r1, r0 + adds r0, r7, 0 + bl sub_80A2D88 +_0804BB3E: + mov r0, r9 + bl sub_804BA18 + ldr r0, _0804BB74 + ldrb r0, [r0] + cmp r0, 0 + beq _0804BB50 + bl sub_804BA64 +_0804BB50: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804BB60: .4byte 0x03004360 +_0804BB64: .4byte 0x030045c0 +_0804BB68: .4byte 0x02028280 +_0804BB6C: .4byte 0x03004828 +_0804BB70: .4byte 0x02029700 +_0804BB74: .4byte 0x03002fa4 + thumb_func_end sub_804BA94 + + thumb_func_start sub_804BB78 +sub_804BB78: @ 804BB78 + push {r4,lr} + ldr r4, _0804BB8C + ldr r0, [r4] + adds r0, 0xBD + ldrb r0, [r0] + cmp r0, 0x1 + beq _0804BB90 + cmp r0, 0x2 + beq _0804BBB6 + b _0804BBC0 + .align 2, 0 +_0804BB8C: .4byte 0x03004828 +_0804BB90: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _0804BBB6 + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + adds r1, 0x9E + movs r2, 0x14 + bl SendBlock + ldr r1, [r4] + adds r1, 0xBD + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804BBB6: + ldr r0, _0804BBC8 + ldr r0, [r0] + adds r0, 0xBD + movs r1, 0 + strb r1, [r0] +_0804BBC0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804BBC8: .4byte 0x03004828 + thumb_func_end sub_804BB78 + + thumb_func_start sub_804BBCC +sub_804BBCC: @ 804BBCC + push {lr} + bl sub_804C29C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_804BBCC + + thumb_func_start sub_804BBE8 +sub_804BBE8: @ 804BBE8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x7 + bls _0804BBF4 + b _0804C0CA +_0804BBF4: + lsls r0, 2 + ldr r1, _0804BC00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804BC00: .4byte _0804BC04 + .align 2, 0 +_0804BC04: + .4byte _0804BC24 + .4byte _0804BCC4 + .4byte _0804BD5C + .4byte _0804BDA4 + .4byte _0804BE48 + .4byte _0804BEF8 + .4byte _0804BFA0 + .4byte _0804C060 +_0804BC24: + ldr r0, _0804BCA0 + movs r1, 0x10 + movs r2, 0xA0 + bl LoadPalette + ldr r3, _0804BCA4 + ldr r4, _0804BCA8 + movs r5, 0x98 + lsls r5, 5 + ldr r1, _0804BCAC + ldr r6, _0804BCB0 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_0804BC42: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _0804BC42 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _0804BCB4 + ldr r2, _0804BCB8 + ldr r0, _0804BCAC + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804BCB0 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _0804BCBC + ldr r2, [r0] + movs r0, 0x8A + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + strh r0, [r1] + movs r3, 0x8B + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0xB4 + strh r0, [r1] + movs r1, 0x80 + lsls r1, 19 + movs r4, 0xBA + lsls r4, 5 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0xC + ldr r2, _0804BCC0 + adds r0, r2, 0 + strh r0, [r1] + b _0804C0CA + .align 2, 0 +_0804BCA0: .4byte gUnknown_0820C9F8 +_0804BCA4: .4byte gUnknown_0820CA98 +_0804BCA8: .4byte 0x06004000 +_0804BCAC: .4byte 0x040000d4 +_0804BCB0: .4byte 0x80000800 +_0804BCB4: .4byte gUnknown_0820F798 +_0804BCB8: .4byte 0x06009000 +_0804BCBC: .4byte 0x03004828 +_0804BCC0: .4byte 0x00005206 +_0804BCC4: + ldr r0, _0804BD3C + ldr r2, [r0] + movs r3, 0x89 + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1] + movs r4, 0x88 + lsls r4, 1 + adds r0, r2, r4 + movs r1, 0xAE + lsls r1, 1 + strh r1, [r0] + ldr r0, _0804BD40 + strh r1, [r0] + ldr r1, _0804BD44 + ldr r2, _0804BD48 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804BD4C + ldr r2, _0804BD50 + movs r3, 0x80 + lsls r3, 5 + adds r1, 0xCA + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r4, [r1, 0x8] + ldr r4, _0804BD54 + movs r5, 0xC0 + lsls r5, 19 + movs r6, 0x98 + lsls r6, 5 + adds r7, r0, 0 +_0804BD10: + str r4, [r1] + str r5, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r4, r3 + adds r5, r3 + subs r6, r3 + cmp r6, r3 + bhi _0804BD10 + str r4, [r1] + str r5, [r1, 0x4] + lsrs r0, r6, 1 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r1, 0x80 + lsls r1, 19 + ldr r3, _0804BD58 + adds r0, r3, 0 + strh r0, [r1] + b _0804C0CA + .align 2, 0 +_0804BD3C: .4byte 0x03004828 +_0804BD40: .4byte 0x04000016 +_0804BD44: .4byte 0x0400000a +_0804BD48: .4byte 0x00008502 +_0804BD4C: .4byte gUnknown_08210798 +_0804BD50: .4byte 0x06002800 +_0804BD54: .4byte gUnknown_0820CA98 +_0804BD58: .4byte 0x00001241 +_0804BD5C: + ldr r0, _0804BD8C + ldr r2, [r0] + movs r4, 0x88 + lsls r4, 1 + adds r0, r2, r4 + movs r1, 0 + strh r1, [r0] + movs r3, 0x89 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + movs r1, 0x80 + lsls r1, 19 + ldr r4, _0804BD90 + adds r0, r4, 0 + strh r0, [r1] + ldr r1, _0804BD94 + ldr r2, _0804BD98 + ldr r0, _0804BD9C + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804BDA0 + b _0804C0C6 + .align 2, 0 +_0804BD8C: .4byte 0x03004828 +_0804BD90: .4byte 0x00001241 +_0804BD94: .4byte gUnknown_08211798 +_0804BD98: .4byte 0x06002800 +_0804BD9C: .4byte 0x040000d4 +_0804BDA0: .4byte 0x80000400 +_0804BDA4: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x92 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804BE24 + ldr r3, [r0] + movs r4, 0x82 + lsls r4, 1 + adds r1, r3, r4 + movs r2, 0 + movs r0, 0x40 + strh r0, [r1] + adds r4, 0x2 + adds r1, r3, r4 + strh r0, [r1] + adds r0, 0xCC + adds r1, r3, r0 + movs r0, 0x78 + strh r0, [r1] + adds r4, 0x8 + adds r1, r3, r4 + ldr r0, _0804BE28 + strh r0, [r1] + movs r1, 0x8E + lsls r1, 1 + adds r0, r3, r1 + strh r2, [r0] + ldr r3, _0804BE2C + ldr r4, _0804BE30 + movs r5, 0xD0 + lsls r5, 5 + ldr r2, _0804BE34 + mov r12, r2 + ldr r1, _0804BE38 + ldr r6, _0804BE3C + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_0804BDF6: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _0804BDF6 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _0804BE40 + ldr r0, _0804BE38 + mov r3, r12 + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _0804BE44 + b _0804C0C6 + .align 2, 0 +_0804BE24: .4byte 0x03004828 +_0804BE28: .4byte 0x0000ffba +_0804BE2C: .4byte gUnknown_0820DD98 +_0804BE30: .4byte 0x06004000 +_0804BE34: .4byte gUnknown_08211F98 +_0804BE38: .4byte 0x040000d4 +_0804BE3C: .4byte 0x80000800 +_0804BE40: .4byte 0x06009000 +_0804BE44: .4byte 0x80000080 +_0804BE48: + movs r1, 0x80 + lsls r1, 19 + ldr r4, _0804BED0 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0xC + ldr r2, _0804BED4 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804BED8 + ldr r3, [r0] + movs r4, 0x82 + lsls r4, 1 + adds r1, r3, r4 + movs r2, 0 + movs r0, 0x40 + strh r0, [r1] + adds r0, 0xC6 + adds r1, r3, r0 + movs r0, 0x5C + strh r0, [r1] + adds r4, 0x14 + adds r1, r3, r4 + movs r0, 0x20 + strh r0, [r1] + adds r0, 0xFA + adds r1, r3, r0 + movs r0, 0x80 + lsls r0, 3 + strh r0, [r1] + movs r1, 0x8E + lsls r1, 1 + adds r0, r3, r1 + strh r2, [r0] + ldr r3, _0804BEDC + ldr r4, _0804BEE0 + movs r5, 0x81 + lsls r5, 6 + ldr r2, _0804BEE4 + mov r12, r2 + ldr r1, _0804BEE8 + ldr r6, _0804BEEC + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_0804BEA4: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _0804BEA4 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _0804BEF0 + ldr r0, _0804BEE8 + mov r3, r12 + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _0804BEF4 + b _0804C0C6 + .align 2, 0 +_0804BED0: .4byte 0x00001441 +_0804BED4: .4byte 0x00001287 +_0804BED8: .4byte 0x03004828 +_0804BEDC: .4byte gUnknown_08213738 +_0804BEE0: .4byte 0x06004000 +_0804BEE4: .4byte gUnknown_08215778 +_0804BEE8: .4byte 0x040000d4 +_0804BEEC: .4byte 0x80000800 +_0804BEF0: .4byte 0x06009000 +_0804BEF4: .4byte 0x80000080 +_0804BEF8: + ldr r0, _0804BF78 + ldr r2, [r0] + movs r4, 0x88 + lsls r4, 1 + adds r0, r2, r4 + movs r1, 0 + strh r1, [r0] + movs r3, 0x89 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _0804BF7C + ldr r4, _0804BF80 + adds r0, r4, 0 + strh r0, [r1] + ldr r0, _0804BF84 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _0804BF88 + ldr r4, _0804BF8C + movs r2, 0x80 + lsls r2, 4 + adds r1, r4, 0 + bl CpuSet + ldr r0, _0804BF90 + movs r1, 0x70 + movs r2, 0x20 + bl LoadCompressedPalette + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + bl FillPalette + movs r0, 0xE0 + lsls r0, 7 + adds r2, r0, 0 + movs r1, 0xA0 + lsls r1, 2 +_0804BF4C: + ldrh r0, [r4] + orrs r0, r2 + strh r0, [r4] + adds r4, 0x2 + subs r1, 0x1 + cmp r1, 0 + bne _0804BF4C + ldr r1, _0804BF8C + ldr r2, _0804BF94 + ldr r0, _0804BF98 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804BF9C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl Reset + b _0804C0CA + .align 2, 0 +_0804BF78: .4byte 0x03004828 +_0804BF7C: .4byte 0x0400000a +_0804BF80: .4byte 0x00000502 +_0804BF84: .4byte gUnknown_08D00000 +_0804BF88: .4byte gUnknown_08D00524 +_0804BF8C: .4byte 0x02000000 +_0804BF90: .4byte gUnknown_08D004E0 +_0804BF94: .4byte 0x06002800 +_0804BF98: .4byte 0x040000d4 +_0804BF9C: .4byte 0x80000280 +_0804BFA0: + movs r1, 0x80 + lsls r1, 19 + ldr r2, _0804C038 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0xC + ldr r3, _0804C03C + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _0804C040 + ldr r3, [r0] + movs r4, 0x82 + lsls r4, 1 + adds r1, r3, r4 + movs r2, 0 + movs r0, 0x40 + strh r0, [r1] + adds r0, 0xC6 + adds r1, r3, r0 + movs r0, 0x5C + strh r0, [r1] + adds r4, 0x14 + adds r1, r3, r4 + adds r0, 0xA4 + strh r0, [r1] + adds r0, 0x1A + adds r1, r3, r0 + movs r0, 0x80 + strh r0, [r1] + subs r4, 0xC + adds r1, r3, r4 + movs r0, 0x78 + strh r0, [r1] + adds r0, 0x96 + adds r1, r3, r0 + movs r0, 0x50 + strh r0, [r1] + movs r1, 0x8E + lsls r1, 1 + adds r0, r3, r1 + strh r2, [r0] + ldr r3, _0804C044 + ldr r4, _0804C048 + movs r5, 0x81 + lsls r5, 6 + ldr r2, _0804C04C + mov r12, r2 + ldr r1, _0804C050 + ldr r6, _0804C054 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_0804C00A: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _0804C00A + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _0804C058 + ldr r0, _0804C050 + mov r3, r12 + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _0804C05C + b _0804C0C6 + .align 2, 0 +_0804C038: .4byte 0x00001441 +_0804C03C: .4byte 0x00001287 +_0804C040: .4byte 0x03004828 +_0804C044: .4byte gUnknown_08213738 +_0804C048: .4byte 0x06004000 +_0804C04C: .4byte gUnknown_08215778 +_0804C050: .4byte 0x040000d4 +_0804C054: .4byte 0x80000800 +_0804C058: .4byte 0x06009000 +_0804C05C: .4byte 0x80000080 +_0804C060: + ldr r0, _0804C0D0 + ldr r2, [r0] + movs r4, 0x8A + lsls r4, 1 + adds r0, r2, r4 + movs r1, 0 + strh r1, [r0] + movs r3, 0x8B + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _0804C0D4 + ldr r4, _0804C0D8 + adds r0, r4, 0 + strh r0, [r1] + ldr r0, _0804C0DC + movs r1, 0x10 + movs r2, 0xA0 + bl LoadPalette + ldr r3, _0804C0E0 + ldr r4, _0804C0E4 + movs r5, 0x98 + lsls r5, 5 + ldr r1, _0804C0E8 + ldr r6, _0804C0EC + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_0804C09C: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _0804C09C + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _0804C0F0 + ldr r2, _0804C0F4 + ldr r0, _0804C0E8 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804C0EC +_0804C0C6: + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] +_0804C0CA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C0D0: .4byte 0x03004828 +_0804C0D4: .4byte 0x0400000c +_0804C0D8: .4byte 0x00005206 +_0804C0DC: .4byte gUnknown_0820C9F8 +_0804C0E0: .4byte gUnknown_0820CA98 +_0804C0E4: .4byte 0x06004000 +_0804C0E8: .4byte 0x040000d4 +_0804C0EC: .4byte 0x80000800 +_0804C0F0: .4byte gUnknown_0820F798 +_0804C0F4: .4byte 0x06009000 + thumb_func_end sub_804BBE8 + + thumb_func_start sub_804C0F8 +sub_804C0F8: @ 804C0F8 + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _0804C130 + ldr r0, _0804C128 + ldr r2, [r0] + movs r1, 0x88 + lsls r1, 1 + adds r0, r2, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r0, _0804C12C + cmp r1, r0 + bgt _0804C15A + adds r0, 0x5 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r3, 0x8E + lsls r3, 1 + adds r1, r2, r3 + b _0804C154 + .align 2, 0 +_0804C128: .4byte 0x03004828 +_0804C12C: .4byte 0x00000109 +_0804C130: + ldr r0, _0804C160 + ldr r0, [r0] + mov r12, r0 + movs r2, 0x87 + lsls r2, 1 + add r2, r12 + ldrh r3, [r2] + movs r0, 0 + ldrsh r1, [r2, r0] + movs r0, 0x40 + negs r0, r0 + cmp r1, r0 + ble _0804C15A + subs r0, r3, 0x1 + strh r0, [r2] + movs r1, 0x8E + lsls r1, 1 + add r1, r12 +_0804C154: + ldrh r0, [r1] + adds r0, 0x40 + strh r0, [r1] +_0804C15A: + pop {r0} + bx r0 + .align 2, 0 +_0804C160: .4byte 0x03004828 + thumb_func_end sub_804C0F8 + + thumb_func_start sub_804C164 +sub_804C164: @ 804C164 + push {lr} + ldr r0, _0804C190 + bl LoadSpriteSheet + ldr r0, _0804C194 + bl LoadSpriteSheet + ldr r0, _0804C198 + bl LoadSpriteSheet + ldr r0, _0804C19C + bl LoadSpriteSheet + ldr r0, _0804C1A0 + bl LoadSpritePalette + ldr r0, _0804C1A4 + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_0804C190: .4byte gUnknown_082159A4 +_0804C194: .4byte gUnknown_082159F4 +_0804C198: .4byte gUnknown_08215A28 +_0804C19C: .4byte gUnknown_08215A78 +_0804C1A0: .4byte gUnknown_082159AC +_0804C1A4: .4byte gUnknown_082159B4 + thumb_func_end sub_804C164 + + thumb_func_start sub_804C1A8 +sub_804C1A8: @ 804C1A8 + push {r4,r5,lr} + sub sp, 0x14 + ldr r0, _0804C21C + ldr r0, [r0] + movs r1, 0x8F + lsls r1, 1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0804C23C + bl GetMultiplayerId + lsls r0, 24 + ldr r3, _0804C220 + movs r2, 0x80 + lsls r2, 17 + eors r2, r0 + lsrs r2, 24 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r0, _0804C224 + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + ldr r5, _0804C228 + ldrb r0, [r5, 0x1] + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r4, 0x64 + muls r0, r4 + ldr r1, _0804C22C + adds r0, r1 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + ldr r0, _0804C230 + mov r1, sp + bl StringCopy10 + ldrb r0, [r5] + muls r0, r4 + ldr r1, _0804C234 + adds r0, r1 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + ldr r0, _0804C238 + mov r1, sp + bl StringCopy10 + b _0804C278 + .align 2, 0 +_0804C21C: .4byte 0x03004828 +_0804C220: .4byte 0x020231cc +_0804C224: .4byte 0x03002978 +_0804C228: .4byte 0x020297d8 +_0804C22C: .4byte 0x030045c0 +_0804C230: .4byte 0x020233cc +_0804C234: .4byte 0x03004360 +_0804C238: .4byte 0x020232cc +_0804C23C: + ldr r0, _0804C280 + ldrh r0, [r0] + lsls r4, r0, 4 + subs r4, r0 + lsls r4, 2 + ldr r0, _0804C284 + adds r4, r0 + ldr r0, _0804C288 + adds r1, r4, 0 + adds r1, 0x2B + bl StringCopy + ldr r0, _0804C28C + adds r1, r4, 0 + bl StringCopy10 + ldr r0, _0804C290 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0804C294 + adds r0, r1 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + ldr r0, _0804C298 + mov r1, sp + bl StringCopy10 +_0804C278: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804C280: .4byte 0x0202e8cc +_0804C284: .4byte gIngameTrades +_0804C288: .4byte 0x020231cc +_0804C28C: .4byte 0x020233cc +_0804C290: .4byte 0x0202e8ce +_0804C294: .4byte 0x03004360 +_0804C298: .4byte 0x020232cc + thumb_func_end sub_804C1A8 + + thumb_func_start sub_804C29C +sub_804C29C: @ 804C29C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r1, _0804C2C0 + ldr r0, [r1] + adds r0, 0xC4 + ldrh r0, [r0] + adds r6, r1, 0 + cmp r0, 0xC8 + bls _0804C2B6 + bl _0804D570 +_0804C2B6: + lsls r0, 2 + ldr r1, _0804C2C4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804C2C0: .4byte 0x03004828 +_0804C2C4: .4byte _0804C2C8 + .align 2, 0 +_0804C2C8: + .4byte _0804C5EC + .4byte _0804C66C + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804C6C8 + .4byte _0804C704 + .4byte _0804C79C + .4byte _0804D570 + .4byte _0804C824 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804C848 + .4byte _0804C868 + .4byte _0804C87A + .4byte _0804C89C + .4byte _0804C8F4 + .4byte _0804C92C + .4byte _0804C978 + .4byte _0804C9C8 + .4byte _0804CA1C + .4byte _0804CAB4 + .4byte _0804CAD8 + .4byte _0804CB24 + .4byte _0804CB70 + .4byte _0804CBCC + .4byte _0804CC2C + .4byte _0804CC40 + .4byte _0804CC54 + .4byte _0804CC68 + .4byte _0804CD94 + .4byte _0804CE64 + .4byte _0804CEEC + .4byte _0804CF68 + .4byte _0804CF78 + .4byte _0804CFA0 + .4byte _0804CFFC + .4byte _0804D028 + .4byte _0804D054 + .4byte _0804D06A + .4byte _0804D0D4 + .4byte _0804D570 + .4byte _0804D0FC + .4byte _0804D13C + .4byte _0804D182 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D1A4 + .4byte _0804D1C4 + .4byte _0804D1D2 + .4byte _0804D1F4 + .4byte _0804D2A8 + .4byte _0804D2E4 + .4byte _0804D314 + .4byte _0804D3C4 + .4byte _0804D41C + .4byte _0804D48C + .4byte _0804D4A0 + .4byte _0804D4A6 + .4byte _0804D4CC + .4byte _0804D528 + .4byte _0804D54C + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804D570 + .4byte _0804CA54 +_0804C5EC: + ldr r3, _0804C65C + ldr r0, [r6] + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r4, [r6] + adds r2, r4, 0 + adds r2, 0xB8 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _0804C660 + strh r1, [r0, 0x24] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldr r2, _0804C664 + movs r3, 0x90 + lsls r3, 1 + adds r0, r4, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r1, 0x26] + adds r1, r4, 0 + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + bl current_map_music_get + ldr r1, [r6] + movs r7, 0x92 + lsls r7, 1 + adds r1, r7 + strh r0, [r1] + ldr r0, _0804C668 + bl sub_8075474 + bl _0804D570 + .align 2, 0 +_0804C65C: .4byte 0x02020004 +_0804C660: .4byte 0x0000ff4c +_0804C664: .4byte gMonFrontPicCoords +_0804C668: .4byte 0x00000179 +_0804C66C: + ldr r4, [r6] + movs r0, 0x8B + lsls r0, 1 + adds r5, r4, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + ble _0804C6A0 + ldr r2, _0804C69C + adds r0, r4, 0 + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + adds r1, 0x3 + strh r1, [r0, 0x24] + ldrh r0, [r5] + subs r0, 0x3 + strh r0, [r5] + bl _0804D570 + .align 2, 0 +_0804C69C: .4byte 0x02020004 +_0804C6A0: + ldr r2, _0804C6C4 + adds r0, r4, 0 + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x24] + strh r1, [r5] + adds r1, r4, 0 + adds r1, 0xC4 + movs r0, 0xA + strh r0, [r1] + bl _0804D570 + .align 2, 0 +_0804C6C4: .4byte 0x02020004 +_0804C6C8: + ldr r5, _0804C6F8 + ldr r1, _0804C6FC + adds r0, r5, 0 + bl StringExpandPlaceholders + ldr r4, _0804C700 + ldr r1, [r4] + adds r0, r1, 0x4 + adds r1, 0x34 + ldrb r2, [r1] + movs r1, 0xF + str r1, [sp] + adds r1, r5, 0 + movs r3, 0x2 + bl sub_8003460 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xC4 + movs r3, 0 + movs r0, 0xB + bl _0804D40C + .align 2, 0 +_0804C6F8: .4byte 0x020234cc +_0804C6FC: .4byte gUnknown_0842C60B +_0804C700: .4byte 0x03004828 +_0804C704: + ldr r2, [r6] + adds r1, r2, 0 + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x50 + beq _0804C718 + bl _0804D570 +_0804C718: + adds r0, r2, 0 + adds r0, 0xB8 + ldrb r0, [r0] + ldr r2, _0804C78C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x5] + lsrs r1, 4 + movs r2, 0x2 + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0x14 + str r2, [sp, 0x8] + ldr r2, _0804C790 + str r2, [sp, 0xC] + movs r2, 0x78 + movs r3, 0x20 + bl sub_8047580 + ldr r1, [r6] + movs r2, 0x81 + lsls r2, 1 + adds r1, r2 + strb r0, [r1] + ldr r0, [r6] + adds r2, r0, 0 + adds r2, 0xC4 + ldrh r1, [r2] + adds r1, 0x1 + strh r1, [r2] + adds r0, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1D + bl ZeroFillWindowRect + ldr r4, _0804C794 + ldr r1, _0804C798 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r1, [r6] + adds r0, r1, 0x4 + adds r1, 0x34 + ldrb r2, [r1] + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x2 + bl sub_8003460 + bl _0804D570 + .align 2, 0 +_0804C78C: .4byte 0x02020004 +_0804C790: .4byte 0x000fffff +_0804C794: .4byte 0x020234cc +_0804C798: .4byte gUnknown_0842C622 +_0804C79C: + ldr r7, _0804C810 + ldr r2, [r6] + movs r5, 0x81 + lsls r5, 1 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r7, 0 + adds r4, 0x1C + adds r0, r4 + ldr r1, [r0] + ldr r0, _0804C814 + cmp r1, r0 + beq _0804C7C0 + bl _0804D570 +_0804C7C0: + adds r0, r2, 0x4 + bl sub_80035AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0804C7D2 + bl _0804D570 +_0804C7D2: + ldr r0, _0804C818 + movs r1, 0x78 + movs r2, 0x20 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + ldr r2, _0804C81C + adds r1, r2 + strb r0, [r1] + ldr r3, [r6] + adds r2, r3, r2 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0804C820 + str r1, [r0] + adds r3, r5 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + bl DestroySprite + ldr r1, [r6] + bl _0804D53C + .align 2, 0 +_0804C810: .4byte 0x02020004 +_0804C814: .4byte SpriteCallbackDummy +_0804C818: .4byte gSpriteTemplate_821595C +_0804C81C: .4byte 0x00000103 +_0804C820: .4byte sub_804D738 +_0804C824: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0804C844 + ldr r0, [r0] + adds r0, 0xC4 + movs r1, 0x14 + strh r1, [r0] + bl _0804D570 + .align 2, 0 +_0804C844: .4byte 0x03004828 +_0804C848: + ldr r0, _0804C864 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804C858 + bl _0804D570 +_0804C858: + movs r0, 0x4 + bl sub_804BBE8 + bl _0804D538 + .align 2, 0 +_0804C864: .4byte 0x0202f388 +_0804C868: + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + bl _0804D534 +_0804C87A: + ldr r0, _0804C898 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804C88A + bl _0804D570 +_0804C88A: + ldr r0, [r6] + adds r0, 0xC4 + movs r1, 0x17 + strh r1, [r0] + bl _0804D570 + .align 2, 0 +_0804C898: .4byte 0x0202f388 +_0804C89C: + ldr r4, _0804C8B8 + ldr r0, [r4] + movs r3, 0x8D + lsls r3, 1 + adds r2, r0, r3 + ldrh r1, [r2] + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bls _0804C8BC + adds r0, r1, 0 + subs r0, 0x34 + strh r0, [r2] + b _0804C8E0 + .align 2, 0 +_0804C8B8: .4byte 0x03004828 +_0804C8BC: + movs r0, 0x1 + bl sub_804BBE8 + ldr r3, [r4] + movs r7, 0x8D + lsls r7, 1 + adds r1, r3, r7 + movs r2, 0 + movs r0, 0x80 + strh r0, [r1] + adds r1, r3, 0 + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + adds r0, r3, 0 + adds r0, 0xC0 + str r2, [r0] +_0804C8E0: + ldr r0, _0804C8F0 + ldr r4, [r0] + movs r1, 0x8D + lsls r1, 1 + adds r0, r4, r1 + bl _0804D16E + .align 2, 0 +_0804C8F0: .4byte 0x03004828 +_0804C8F4: + ldr r1, [r6] + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x14 + bhi _0804C906 + bl _0804D570 +_0804C906: + movs r0, 0x3 + bl sub_804BBE8 + bl sub_804B128 + ldr r0, _0804C928 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + adds r1, 0xBB + strb r0, [r1] + ldr r1, [r6] + bl _0804D53C + .align 2, 0 +_0804C928: .4byte gSpriteTemplate_8215A80 +_0804C92C: + ldr r2, _0804C96C + ldr r0, [r6] + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + blt _0804C94C + bl _0804D570 +_0804C94C: + adds r0, r1, 0 + bl DestroySprite + ldr r1, _0804C970 + movs r3, 0xC8 + lsls r3, 3 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r7, _0804C974 + adds r0, r7, 0 + strh r0, [r1] + ldr r1, [r6] + bl _0804D53C + .align 2, 0 +_0804C96C: .4byte 0x02020004 +_0804C970: .4byte 0x04000050 +_0804C974: .4byte 0x0000040c +_0804C978: + ldr r2, [r6] + movs r3, 0x88 + lsls r3, 1 + adds r0, r2, r3 + ldrh r1, [r0] + subs r1, 0x1 + strh r1, [r0] + lsls r1, 16 + movs r0, 0x9E + lsls r0, 17 + cmp r1, r0 + bne _0804C99A + adds r1, r2, 0 + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_0804C99A: + ldr r0, [r6] + adds r0, r3 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r0, 0xA4 + lsls r0, 1 + cmp r1, r0 + beq _0804C9AE + bl _0804D570 +_0804C9AE: + ldr r0, _0804C9C4 + movs r1, 0x80 + movs r2, 0x41 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + adds r1, 0xBC + strb r0, [r1] + bl _0804D570 + .align 2, 0 +_0804C9C4: .4byte gSpriteTemplate_8215A30 +_0804C9C8: + ldr r0, _0804CA0C + movs r1, 0x80 + movs r2, 0x50 + movs r3, 0x3 + bl CreateSprite + ldr r4, _0804CA10 + ldr r1, [r4] + adds r1, 0xBA + strb r0, [r1] + ldr r0, _0804CA14 + movs r1, 0x80 + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + ldr r1, [r4] + adds r1, 0xBB + strb r0, [r1] + ldr r0, [r4] + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804CA18 + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + ldr r1, [r4] + bl _0804D53C + .align 2, 0 +_0804CA0C: .4byte gSpriteTemplate_82159BC +_0804CA10: .4byte 0x03004828 +_0804CA14: .4byte gSpriteTemplate_82159FC +_0804CA18: .4byte 0x02020004 +_0804CA1C: + ldr r2, [r6] + movs r3, 0x88 + lsls r3, 1 + adds r1, r2, r3 + ldrh r0, [r1] + subs r0, 0x2 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA6 + bne _0804CA3A + adds r1, r2, 0 + adds r1, 0xC4 + movs r0, 0xC8 + strh r0, [r1] +_0804CA3A: + movs r0, 0 + bl sub_804C0F8 + movs r1, 0x80 + lsls r1, 19 + ldr r7, _0804CA50 + adds r0, r7, 0 + strh r0, [r1] + bl _0804D570 + .align 2, 0 +_0804CA50: .4byte 0x00001641 +_0804CA54: + ldr r4, _0804CAB0 + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0xBA + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + subs r1, 0x2 + strh r1, [r0, 0x22] + adds r2, 0xBB + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + subs r1, 0x2 + strh r1, [r0, 0x22] + movs r0, 0 + bl sub_804C0F8 + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0xBA + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r3, 0x22 + ldrsh r1, [r0, r3] + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _0804CAA4 + bl _0804D570 +_0804CAA4: + adds r1, r2, 0 + adds r1, 0xC4 + movs r0, 0x1D + strh r0, [r1] + bl _0804D570 + .align 2, 0 +_0804CAB0: .4byte 0x02020004 +_0804CAB4: + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0804CAD4 + ldr r0, [r0] + adds r0, 0xC4 + movs r1, 0x1E + strh r1, [r0] + bl _0804D570 + .align 2, 0 +_0804CAD4: .4byte 0x03004828 +_0804CAD8: + ldr r0, _0804CB1C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804CAE8 + bl _0804D570 +_0804CAE8: + ldr r0, [r6] + adds r0, 0xBA + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0804CB20 + adds r0, r4 + bl DestroySprite + ldr r0, [r6] + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + movs r0, 0x2 + bl sub_804BBE8 + ldr r1, [r6] + bl _0804D53C + .align 2, 0 +_0804CB1C: .4byte 0x0202f388 +_0804CB20: .4byte 0x02020004 +_0804CB24: + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r5, _0804CB68 + adds r0, r5, 0 + movs r1, 0x6F + movs r2, 0xAA + movs r3, 0 + bl CreateSprite + ldr r4, _0804CB6C + ldr r1, [r4] + adds r1, 0xBA + strb r0, [r1] + movs r2, 0xA + negs r2, r2 + adds r0, r5, 0 + movs r1, 0x81 + movs r3, 0 + bl CreateSprite + ldr r1, [r4] + adds r1, 0xBB + strb r0, [r1] + ldr r1, [r4] + bl _0804D53C + .align 2, 0 +_0804CB68: .4byte gSpriteTemplate_82159FC +_0804CB6C: .4byte 0x03004828 +_0804CB70: + ldr r0, _0804CBC0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804CB8E + movs r0, 0x2E + bl audio_play + ldr r0, _0804CBC4 + ldr r1, [r0] + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_0804CB8E: + ldr r3, _0804CBC8 + ldr r0, _0804CBC4 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0xBA + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + strh r1, [r0, 0x26] + adds r2, 0xBB + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + strh r1, [r0, 0x26] + bl _0804D570 + .align 2, 0 +_0804CBC0: .4byte 0x0202f388 +_0804CBC4: .4byte 0x03004828 +_0804CBC8: .4byte 0x02020004 +_0804CBCC: + ldr r5, _0804CC28 + ldr r4, [r6] + adds r2, r4, 0 + adds r2, 0xBA + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + strh r1, [r0, 0x26] + adds r6, r4, 0 + adds r6, 0xBB + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + strh r1, [r0, 0x26] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r5 + movs r7, 0x26 + ldrsh r1, [r3, r7] + movs r0, 0x5A + negs r0, r0 + cmp r1, r0 + ble _0804CC12 + bl _0804D570 +_0804CC12: + movs r2, 0x1 + strh r2, [r3, 0x30] + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x30] + adds r1, r4, 0 + bl _0804D53C + .align 2, 0 +_0804CC28: .4byte 0x02020004 +_0804CC2C: + ldr r2, _0804CC3C + movs r0, 0x1 + movs r1, 0x10 + bl BlendPalettes + bl _0804D538 + .align 2, 0 +_0804CC3C: .4byte 0x0000ffff +_0804CC40: + ldr r2, _0804CC50 + movs r0, 0x1 + movs r1, 0 + bl BlendPalettes + bl _0804D538 + .align 2, 0 +_0804CC50: .4byte 0x0000ffff +_0804CC54: + ldr r2, _0804CC64 + movs r0, 0x1 + movs r1, 0x10 + bl BlendPalettes + bl _0804D538 + .align 2, 0 +_0804CC64: .4byte 0x0000ffff +_0804CC68: + ldr r5, _0804CCD8 + ldr r0, [r5] + movs r1, 0x90 + lsls r1, 1 + adds r0, r1 + ldrh r0, [r0] + bl sub_8040A3C + lsls r0, 24 + cmp r0, 0 + bne _0804CCE4 + ldr r4, _0804CCDC + ldr r2, [r5] + adds r2, 0xB8 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x10 + adds r0, r1 + ldr r1, _0804CCE0 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x1] + ldr r0, [r5] + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x3 + bl CalcCenterToCornerVec + ldr r0, [r5] + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0 + bl StartSpriteAffineAnim + b _0804CCFA + .align 2, 0 +_0804CCD8: .4byte 0x03004828 +_0804CCDC: .4byte 0x02020004 +_0804CCE0: .4byte gUnknown_08215AC0 +_0804CCE4: + ldr r0, [r5] + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804CD88 + adds r0, r1 + movs r1, 0 + bl StartSpriteAffineAnim +_0804CCFA: + ldr r5, _0804CD8C + ldr r0, [r5] + adds r0, 0xB9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0804CD88 + adds r0, r4 + movs r1, 0 + bl StartSpriteAffineAnim + ldr r2, [r5] + adds r3, r2, 0 + adds r3, 0xB8 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x3C + strh r1, [r0, 0x20] + adds r2, 0xB9 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xB4 + strh r1, [r0, 0x20] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xC0 + strh r1, [r0, 0x22] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0804CD90 + strh r1, [r0, 0x22] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0xB9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r1, [r5] + bl _0804D53C + .align 2, 0 +_0804CD88: .4byte 0x02020004 +_0804CD8C: .4byte 0x03004828 +_0804CD90: .4byte 0x0000ffe0 +_0804CD94: + ldr r4, _0804CE5C + ldr r2, [r6] + adds r3, r2, 0 + adds r3, 0xB8 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + movs r5, 0 + strh r1, [r0, 0x26] + adds r2, 0xB9 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + strh r1, [r0, 0x26] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x26] + adds r0, 0xA3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bhi _0804CDDC + movs r0, 0x2D + bl audio_play +_0804CDDC: + ldr r2, [r6] + adds r3, r2, 0 + adds r3, 0xB8 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r7, 0x26 + ldrsh r1, [r0, r7] + movs r0, 0xDE + negs r0, r0 + cmp r1, r0 + blt _0804CDFA + b _0804D570 +_0804CDFA: + adds r0, r2, 0 + adds r0, 0xBA + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r5, [r0, 0x30] + adds r0, r2, 0 + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r5, [r0, 0x30] + adds r1, r2, 0 + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r6] + adds r0, 0xB9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r2, _0804CE60 + movs r0, 0x1 + movs r1, 0 + bl BlendPalettes + b _0804D570 + .align 2, 0 +_0804CE5C: .4byte 0x02020004 +_0804CE60: .4byte 0x0000ffff +_0804CE64: + ldr r4, _0804CEE8 + ldr r2, [r6] + adds r3, r2, 0 + adds r3, 0xBA + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + strh r1, [r0, 0x26] + adds r2, 0xBB + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + strh r1, [r0, 0x26] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r2, 0x26 + ldrsh r1, [r0, r2] + movs r0, 0xDE + negs r0, r0 + cmp r1, r0 + ble _0804CEA6 + b _0804D570 +_0804CEA6: + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, [r6] + adds r2, r1, 0 + adds r2, 0xC4 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0xBA + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r0, [r6] + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + b _0804D570 + .align 2, 0 +_0804CEE8: .4byte 0x02020004 +_0804CEEC: + ldr r0, _0804CF58 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804CEFA + b _0804D570 +_0804CEFA: + ldr r1, [r6] + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 + bl sub_804BBE8 + ldr r0, [r6] + movs r3, 0x88 + lsls r3, 1 + adds r0, r3 + movs r1, 0xA6 + strh r1, [r0] + ldr r0, _0804CF5C + movs r4, 0x14 + negs r4, r4 + movs r1, 0x80 + adds r2, r4, 0 + movs r3, 0x3 + bl CreateSprite + ldr r1, [r6] + adds r1, 0xBA + strb r0, [r1] + ldr r0, _0804CF60 + movs r1, 0x80 + adds r2, r4, 0 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + adds r1, 0xBB + strb r0, [r1] + ldr r0, [r6] + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804CF64 + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + b _0804D570 + .align 2, 0 +_0804CF58: .4byte 0x0202f388 +_0804CF5C: .4byte gSpriteTemplate_82159BC +_0804CF60: .4byte gSpriteTemplate_82159FC +_0804CF64: .4byte 0x02020004 +_0804CF68: + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + b _0804D534 +_0804CF78: + movs r1, 0x80 + lsls r1, 19 + ldr r7, _0804CF98 + adds r0, r7, 0 + strh r0, [r1] + movs r0, 0x1 + bl sub_804C0F8 + ldr r0, _0804CF9C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804CF96 + b _0804D570 +_0804CF96: + b _0804D538 + .align 2, 0 +_0804CF98: .4byte 0x00001641 +_0804CF9C: .4byte 0x0202f388 +_0804CFA0: + movs r0, 0x1 + bl sub_804C0F8 + ldr r2, _0804CFF4 + ldr r0, _0804CFF8 + ldr r3, [r0] + adds r4, r3, 0 + adds r4, 0xBA + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + strh r1, [r0, 0x26] + adds r0, r3, 0 + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + strh r1, [r0, 0x26] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r2, 0x26 + ldrsh r1, [r0, r2] + movs r7, 0x22 + ldrsh r0, [r0, r7] + adds r1, r0 + cmp r1, 0x40 + beq _0804CFEE + b _0804D570 +_0804CFEE: + adds r1, r3, 0 + b _0804D53C + .align 2, 0 +_0804CFF4: .4byte 0x02020004 +_0804CFF8: .4byte 0x03004828 +_0804CFFC: + movs r0, 0x1 + bl sub_804C0F8 + ldr r0, _0804D024 + ldr r1, [r0] + movs r0, 0x88 + lsls r0, 1 + adds r2, r1, r0 + ldrh r0, [r2] + adds r0, 0x2 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x9E + lsls r3, 1 + cmp r0, r3 + bgt _0804D020 + b _0804D570 +_0804D020: + strh r3, [r2] + b _0804D53C + .align 2, 0 +_0804D024: .4byte 0x03004828 +_0804D028: + ldr r0, [r6] + adds r0, 0xBA + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0804D050 + adds r0, r4 + bl DestroySprite + ldr r0, [r6] + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + b _0804D400 + .align 2, 0 +_0804D050: .4byte 0x02020004 +_0804D054: + ldr r2, [r6] + adds r1, r2, 0 + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0xA + beq _0804D066 + b _0804D570 +_0804D066: + adds r1, 0x4 + b _0804D53E +_0804D06A: + ldr r1, [r6] + movs r4, 0x88 + lsls r4, 1 + adds r2, r1, r4 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + movs r3, 0xAE + lsls r3, 1 + cmp r0, r3 + ble _0804D08E + strh r3, [r2] + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_0804D08E: + ldr r0, [r6] + adds r0, r4 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r0, 0xA4 + lsls r0, 1 + cmp r1, r0 + bne _0804D0B0 + ldr r0, _0804D0C8 + movs r1, 0x80 + movs r2, 0x41 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + adds r1, 0xBC + strb r0, [r1] +_0804D0B0: + ldr r2, _0804D0CC + ldr r0, [r6] + adds r0, 0xBC + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0804D0D0 + str r1, [r0] + b _0804D570 + .align 2, 0 +_0804D0C8: .4byte gSpriteTemplate_8215A30 +_0804D0CC: .4byte 0x02020004 +_0804D0D0: .4byte sub_804B0E0 +_0804D0D4: + ldr r0, _0804D0F4 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + ldr r2, _0804D0F8 + ldr r1, [r2] + adds r1, 0xBB + strb r0, [r1] + ldr r0, [r2] + adds r0, 0xC4 + movs r1, 0x32 + strh r1, [r0] + b _0804D570 + .align 2, 0 +_0804D0F4: .4byte gSpriteTemplate_8215A80 +_0804D0F8: .4byte 0x03004828 +_0804D0FC: + ldr r2, _0804D138 + ldr r0, [r6] + adds r0, 0xBB + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + blt _0804D11A + b _0804D570 +_0804D11A: + adds r0, r1, 0 + bl DestroySprite + movs r0, 0x6 + bl sub_804BBE8 + ldr r1, [r6] + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x9F + bl audio_play + b _0804D570 + .align 2, 0 +_0804D138: .4byte 0x02020004 +_0804D13C: + ldr r1, [r6] + movs r3, 0x8D + lsls r3, 1 + adds r2, r1, r3 + ldrh r3, [r2] + ldr r0, _0804D154 + cmp r3, r0 + bhi _0804D158 + adds r0, r3, 0 + adds r0, 0x34 + strh r0, [r2] + b _0804D166 + .align 2, 0 +_0804D154: .4byte 0x000003ff +_0804D158: + movs r0, 0x80 + lsls r0, 3 + strh r0, [r2] + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_0804D166: + ldr r4, [r6] + movs r7, 0x8D + lsls r7, 1 + adds r0, r4, r7 +_0804D16E: + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 8 + bl __divsi3 + movs r2, 0x8C + lsls r2, 1 + adds r1, r4, r2 + strh r0, [r1] + b _0804D570 +_0804D182: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0804D1A0 + ldr r0, [r0] + adds r0, 0xC4 + movs r1, 0x3C + strh r1, [r0] + b _0804D570 + .align 2, 0 +_0804D1A0: .4byte 0x03004828 +_0804D1A4: + ldr r0, _0804D1C0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804D1B2 + b _0804D570 +_0804D1B2: + movs r0, 0x5 + bl sub_804BBE8 + movs r0, 0x7 + bl sub_804BBE8 + b _0804D538 + .align 2, 0 +_0804D1C0: .4byte 0x0202f388 +_0804D1C4: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + b _0804D534 +_0804D1D2: + movs r1, 0x80 + lsls r1, 19 + movs r3, 0xA2 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _0804D1F0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804D1EC + b _0804D570 +_0804D1EC: + ldr r1, [r6] + b _0804D53C + .align 2, 0 +_0804D1F0: .4byte 0x0202f388 +_0804D1F4: + ldr r0, _0804D290 + movs r2, 0x8 + negs r2, r2 + movs r1, 0x78 + movs r3, 0 + bl CreateSprite + ldr r6, _0804D294 + ldr r1, [r6] + ldr r5, _0804D298 + adds r1, r5 + movs r7, 0 + mov r8, r7 + strb r0, [r1] + ldr r4, _0804D29C + ldr r2, [r6] + adds r2, r5 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x4A + strh r1, [r0, 0x34] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0804D2A0 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + lsrs r1, 4 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + ldr r2, _0804D2A4 + movs r1, 0x10 + bl BlendPalettes + ldr r1, [r6] + adds r2, r1, 0 + adds r2, 0xC4 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + adds r1, 0xC0 + mov r0, r8 + str r0, [r1] + b _0804D570 + .align 2, 0 +_0804D290: .4byte gSpriteTemplate_821595C +_0804D294: .4byte 0x03004828 +_0804D298: .4byte 0x00000103 +_0804D29C: .4byte 0x02020004 +_0804D2A0: .4byte sub_804D80C +_0804D2A4: .4byte 0x0000ffff +_0804D2A8: + ldr r2, _0804D2D8 + ldr r0, [r6] + ldr r1, _0804D2DC + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + lsrs r1, 4 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + ldr r1, _0804D2E0 + str r1, [sp] + movs r1, 0x1 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, [r6] + b _0804D53C + .align 2, 0 +_0804D2D8: .4byte 0x02020004 +_0804D2DC: .4byte 0x00000103 +_0804D2E0: .4byte 0x0000ffff +_0804D2E4: + ldr r2, _0804D308 + ldr r3, [r6] + ldr r7, _0804D30C + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0804D310 + cmp r1, r0 + beq _0804D302 + b _0804D570 +_0804D302: + adds r1, r3, 0 + b _0804D53C + .align 2, 0 +_0804D308: .4byte 0x02020004 +_0804D30C: .4byte 0x00000103 +_0804D310: .4byte SpriteCallbackDummy +_0804D314: + ldr r4, _0804D3B4 + ldr r0, [r6] + mov r8, r0 + mov r5, r8 + adds r5, 0xB9 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r3, 0 + movs r1, 0x78 + strh r1, [r0, 0x20] + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldr r2, _0804D3B8 + movs r0, 0x91 + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + adds r0, 0x3C + strh r0, [r1, 0x22] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x24] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x26] + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r1, [r1, 0x5] + lsrs r1, 4 + movs r2, 0x2 + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0x14 + str r2, [sp, 0x8] + ldr r2, _0804D3BC + str r2, [sp, 0xC] + movs r2, 0x78 + movs r3, 0x54 + bl AddTextPrinterForMessage + ldr r0, [r6] + ldr r5, _0804D3C0 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl FreeSpriteOamMatrix + ldr r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, [r6] + b _0804D53C + .align 2, 0 +_0804D3B4: .4byte 0x02020004 +_0804D3B8: .4byte gMonFrontPicCoords +_0804D3BC: .4byte 0x000fffff +_0804D3C0: .4byte 0x00000103 +_0804D3C4: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, [r6] + adds r0, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1D + bl ZeroFillWindowRect + ldr r4, _0804D414 + ldr r1, _0804D418 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r1, [r6] + adds r0, r1, 0x4 + adds r1, 0x34 + ldrb r2, [r1] + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x2 + bl sub_8003460 +_0804D400: + ldr r1, [r6] + adds r2, r1, 0 + adds r2, 0xC4 + ldrh r0, [r2] + adds r0, 0x1 + movs r3, 0 +_0804D40C: + strh r0, [r2] + adds r1, 0xC0 + str r3, [r1] + b _0804D570 + .align 2, 0 +_0804D414: .4byte 0x020234cc +_0804D418: .4byte gUnknown_0842C62F +_0804D41C: + ldr r1, [r6] + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x4 + bne _0804D430 + ldr r0, _0804D480 + bl fanfare_play +_0804D430: + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0xC0 + ldr r0, [r0] + cmp r0, 0xF0 + beq _0804D43E + b _0804D570 +_0804D43E: + adds r1, r2, 0 + adds r1, 0xC4 + ldrh r0, [r1] + adds r0, 0x1 + movs r5, 0 + strh r0, [r1] + adds r0, r2, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1D + bl ZeroFillWindowRect + ldr r4, _0804D484 + ldr r1, _0804D488 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r1, [r6] + adds r0, r1, 0x4 + adds r1, 0x34 + ldrb r2, [r1] + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x2 + bl sub_8003460 + ldr r0, [r6] + adds r0, 0xC0 + str r5, [r0] + b _0804D570 + .align 2, 0 +_0804D480: .4byte 0x00000173 +_0804D484: .4byte 0x020234cc +_0804D488: .4byte gUnknown_0842C640 +_0804D48C: + ldr r2, [r6] + adds r1, r2, 0 + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bne _0804D570 + adds r1, 0x4 + b _0804D53E +_0804D4A0: + bl sub_804E1DC + b _0804D538 +_0804D4A6: + ldr r2, [r6] + movs r3, 0x8F + lsls r3, 1 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0804D4B8 + movs r0, 0x1 + b _0804D572 +_0804D4B8: + ldr r0, _0804D4C8 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804D570 + adds r1, r2, 0 + b _0804D53C + .align 2, 0 +_0804D4C8: .4byte 0x03001770 +_0804D4CC: + ldr r0, _0804D510 + ldrb r0, [r0] + movs r1, 0 + bl sub_804BA94 + ldr r1, _0804D514 + ldr r0, _0804D518 + str r0, [r1] + ldr r7, _0804D51C + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0804D520 + adds r0, r5 + movs r1, 0x1 + movs r2, 0 + bl GetEvolutionTargetSpecies + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _0804D538 + ldrb r3, [r7] + adds r0, r3, 0 + muls r0, r6 + adds r0, r5 + ldr r1, _0804D524 + ldr r1, [r1] + adds r1, 0xB9 + ldrb r2, [r1] + adds r1, r4, 0 + bl sub_81120E4 + b _0804D538 + .align 2, 0 +_0804D510: .4byte 0x0202e8ce +_0804D514: .4byte 0x03005e94 +_0804D518: .4byte sub_804BBCC +_0804D51C: .4byte 0x020297d8 +_0804D520: .4byte 0x03004360 +_0804D524: .4byte 0x03004828 +_0804D528: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 +_0804D534: + bl BeginNormalPaletteFade +_0804D538: + ldr r0, _0804D548 + ldr r1, [r0] +_0804D53C: + adds r1, 0xC4 +_0804D53E: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _0804D570 + .align 2, 0 +_0804D548: .4byte 0x03004828 +_0804D54C: + ldr r0, _0804D580 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804D570 + ldr r0, [r6] + movs r7, 0x92 + lsls r7, 1 + adds r0, r7 + ldrh r0, [r0] + bl sub_8075474 + ldr r0, _0804D584 + bl SetMainCallback2 + bl sub_804D8E4 +_0804D570: + movs r0, 0 +_0804D572: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804D580: .4byte 0x0202f388 +_0804D584: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_804C29C + + thumb_func_start sub_804D588 +sub_804D588: @ 804D588 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0804D5A0 + ldr r2, _0804D5A4 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _0804D5A8 + cmp r0, 0x4 + beq _0804D5B8 + b _0804D614 + .align 2, 0 +_0804D5A0: .4byte 0x03001770 +_0804D5A4: .4byte 0x0000043c +_0804D5A8: + movs r0, 0x4 + strb r0, [r1] + ldr r1, _0804D5B4 + movs r0, 0x1 + b _0804D612 + .align 2, 0 +_0804D5B4: .4byte 0x03001bb4 +_0804D5B8: + ldr r0, _0804D5F4 + ldr r1, _0804D5F8 + mov r8, r1 + str r1, [r0] + ldr r7, _0804D5FC + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0804D600 + adds r0, r5 + movs r1, 0x1 + movs r2, 0 + bl GetEvolutionTargetSpecies + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _0804D608 + ldrb r3, [r7] + adds r0, r3, 0 + muls r0, r6 + adds r0, r5 + ldr r1, _0804D604 + ldr r1, [r1] + adds r1, 0xB9 + ldrb r2, [r1] + adds r1, r4, 0 + bl sub_81120E4 + b _0804D60E + .align 2, 0 +_0804D5F4: .4byte 0x03005e94 +_0804D5F8: .4byte sub_804DC88 +_0804D5FC: .4byte 0x020297d8 +_0804D600: .4byte 0x03004360 +_0804D604: .4byte 0x03004828 +_0804D608: + mov r0, r8 + bl SetMainCallback2 +_0804D60E: + ldr r1, _0804D638 + movs r0, 0xFF +_0804D612: + strb r0, [r1] +_0804D614: + bl HasLinkErrorOccurred + lsls r0, 24 + cmp r0, 0 + bne _0804D622 + bl RunTasks +_0804D622: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D638: .4byte 0x020297d8 + thumb_func_end sub_804D588 + + thumb_func_start sub_804D63C +sub_804D63C: @ 804D63C + push {r4-r6,lr} + bl sub_804B2B0 + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0x1 + adds r0, r5, 0 + ands r0, r6 + cmp r0, 0 + beq _0804D67A + ldr r4, _0804D6A8 + ldrh r1, [r4] + ldr r0, _0804D6AC + cmp r1, r0 + bne _0804D664 + ldr r0, _0804D6B0 + bl SetMainCallback2 +_0804D664: + ldrh r1, [r4] + ldr r0, _0804D6B4 + cmp r1, r0 + bne _0804D674 + ldr r0, _0804D6B8 + ldr r0, [r0] + adds r0, 0x9C + strb r6, [r0] +_0804D674: + movs r0, 0 + bl ResetBlockReceivedFlag +_0804D67A: + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + beq _0804D6A2 + ldr r0, _0804D6A8 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _0804D6B4 + cmp r1, r0 + bne _0804D69C + ldr r0, _0804D6B8 + ldr r0, [r0] + adds r0, 0x9D + movs r1, 0x1 + strb r1, [r0] +_0804D69C: + movs r0, 0x1 + bl ResetBlockReceivedFlag +_0804D6A2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804D6A8: .4byte 0x03002b80 +_0804D6AC: .4byte 0x0000dcba +_0804D6B0: .4byte sub_804D588 +_0804D6B4: .4byte 0x0000abcd +_0804D6B8: .4byte 0x03004828 + thumb_func_end sub_804D63C + + thumb_func_start sub_804D6BC +sub_804D6BC: @ 804D6BC + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + ldrh r4, [r5, 0x22] + adds r4, r0 + strh r4, [r5, 0x22] + ldrh r0, [r5, 0x30] + ldrh r2, [r5, 0x38] + adds r0, r2 + strh r0, [r5, 0x38] + movs r1, 0x38 + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r5, 0x20] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0x4C + ble _0804D70A + movs r0, 0x4C + strh r0, [r5, 0x22] + movs r2, 0x2E + ldrsh r1, [r5, r2] + movs r2, 0x32 + ldrsh r0, [r5, r2] + muls r0, r1 + negs r0, r0 + movs r1, 0x64 + bl __divsi3 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] +_0804D70A: + movs r1, 0x20 + ldrsh r0, [r5, r1] + cmp r0, 0x78 + bne _0804D716 + movs r0, 0 + strh r0, [r5, 0x30] +_0804D716: + ldrh r0, [r5, 0x36] + ldrh r2, [r5, 0x2E] + adds r0, r2 + strh r0, [r5, 0x2E] + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bne _0804D72E + movs r0, 0x1 + strh r0, [r5, 0x3C] + ldr r0, _0804D734 + str r0, [r5, 0x1C] +_0804D72E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804D734: .4byte SpriteCallbackDummy + thumb_func_end sub_804D6BC + + thumb_func_start sub_804D738 +sub_804D738: @ 804D738 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _0804D7A0 + movs r2, 0x2E + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x16 + bne _0804D760 + movs r0, 0x38 + bl audio_play +_0804D760: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2C + bne _0804D796 + movs r0, 0x8C + bl audio_play + ldr r0, _0804D7A4 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x2E] + ldrb r1, [r4, 0x5] + lsrs r1, 4 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + movs r1, 0x1 + negs r1, r1 + ldr r2, _0804D7A8 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0804D796: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804D7A0: .4byte gUnknown_08215BA0 +_0804D7A4: .4byte sub_804D7AC +_0804D7A8: .4byte 0x0000ffff + thumb_func_end sub_804D738 + + thumb_func_start sub_804D7AC +sub_804D7AC: @ 804D7AC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x14 + bne _0804D7C0 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_0804D7C0: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _0804D7FE + ldr r1, _0804D804 + movs r2, 0x2E + ldrsh r0, [r4, r2] + adds r0, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + ldrh r0, [r4, 0x26] + subs r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x17 + bne _0804D7FE + adds r0, r4, 0 + bl DestroySprite + ldr r0, _0804D808 + ldr r0, [r0] + adds r0, 0xC4 + movs r1, 0xE + strh r1, [r0] +_0804D7FE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804D804: .4byte gUnknown_08215BA0 +_0804D808: .4byte 0x03004828 + thumb_func_end sub_804D7AC + + thumb_func_start sub_804D80C +sub_804D80C: @ 804D80C + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0804D83C + ldrh r0, [r4, 0x22] + adds r0, 0x4 + strh r0, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _0804D88C + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x16 + strh r0, [r4, 0x2E] + movs r0, 0x38 + bl audio_play + b _0804D88C +_0804D83C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x42 + bne _0804D84A + movs r0, 0x39 + bl audio_play +_0804D84A: + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x5C + bne _0804D858 + movs r0, 0x3A + bl audio_play +_0804D858: + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0x6B + bne _0804D866 + movs r0, 0x3B + bl audio_play +_0804D866: + ldr r1, _0804D894 + movs r2, 0x2E + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r3, [r4, 0x26] + adds r0, r3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6C + bne _0804D88C + ldr r0, _0804D898 + str r0, [r4, 0x1C] +_0804D88C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804D894: .4byte gUnknown_08215BA0 +_0804D898: .4byte SpriteCallbackDummy + thumb_func_end sub_804D80C + + thumb_func_start sub_804D89C +sub_804D89C: @ 804D89C + push {r4-r6,lr} + ldr r0, _0804D8D0 + ldrh r0, [r0] + lsls r4, r0, 4 + subs r4, r0 + lsls r4, 2 + ldr r0, _0804D8D4 + adds r4, r0 + ldr r0, _0804D8D8 + ldrh r1, [r4, 0x38] + movs r6, 0xB + muls r1, r6 + ldr r5, _0804D8DC + adds r1, r5 + bl StringCopy + ldr r0, _0804D8E0 + ldrh r1, [r4, 0xC] + muls r1, r6 + adds r1, r5 + bl StringCopy + ldrh r0, [r4, 0x38] + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0804D8D0: .4byte 0x0202e8cc +_0804D8D4: .4byte gIngameTrades +_0804D8D8: .4byte 0x020231cc +_0804D8DC: .4byte gSpeciesNames +_0804D8E0: .4byte 0x020232cc + thumb_func_end sub_804D89C + + thumb_func_start sub_804D8E4 +sub_804D8E4: @ 804D8E4 + push {r4,lr} + sub sp, 0x20 + ldr r0, _0804D92C + ldrh r0, [r0] + lsls r4, r0, 4 + subs r4, r0 + lsls r4, 2 + ldr r0, _0804D930 + adds r4, r0 + ldr r0, _0804D934 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0804D938 + adds r0, r1 + movs r1, 0x2 + mov r2, sp + bl PokemonGetField + ldr r0, _0804D93C + mov r1, sp + bl StringCopy10 + ldr r0, _0804D940 + ldrh r2, [r4, 0xC] + movs r1, 0xB + muls r1, r2 + ldr r2, _0804D944 + adds r1, r2 + bl StringCopy + add sp, 0x20 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804D92C: .4byte 0x0202e8cc +_0804D930: .4byte gIngameTrades +_0804D934: .4byte 0x0202e8ce +_0804D938: .4byte 0x03004360 +_0804D93C: .4byte 0x020231cc +_0804D940: .4byte 0x020232cc +_0804D944: .4byte gSpeciesNames + thumb_func_end sub_804D8E4 + + thumb_func_start sub_804D948 +sub_804D948: @ 804D948 + push {r4-r7,lr} + sub sp, 0x38 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r1, 4 + subs r2, r1 + lsls r2, 2 + ldr r1, _0804DAA4 + adds r5, r2, r1 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0804DAA8 + adds r0, r1 + movs r1, 0x38 + bl PokemonGetField + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + add r4, sp, 0x34 + movs r0, 0xFE + strb r0, [r4] + ldr r6, _0804DAAC + ldrh r1, [r5, 0xC] + movs r3, 0x1 + str r3, [sp] + ldr r0, [r5, 0x24] + str r0, [sp, 0x4] + str r3, [sp, 0x8] + ldr r0, [r5, 0x18] + str r0, [sp, 0xC] + adds r0, r6, 0 + movs r3, 0x20 + bl create_pokemon_set_level + adds r2, r5, 0 + adds r2, 0xE + adds r0, r6, 0 + movs r1, 0x27 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0xF + adds r0, r6, 0 + movs r1, 0x28 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x10 + adds r0, r6, 0 + movs r1, 0x29 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x11 + adds r0, r6, 0 + movs r1, 0x2A + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x12 + adds r0, r6, 0 + movs r1, 0x2B + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x13 + adds r0, r6, 0 + movs r1, 0x2C + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x2B + adds r0, r6, 0 + movs r1, 0x7 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x36 + adds r0, r6, 0 + movs r1, 0x31 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x14 + adds r0, r6, 0 + movs r1, 0x2E + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x1D + adds r0, r6, 0 + movs r1, 0x17 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x1E + adds r0, r6, 0 + movs r1, 0x18 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x1C + adds r0, r6, 0 + movs r1, 0x16 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x1F + adds r0, r6, 0 + movs r1, 0x21 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x20 + adds r0, r6, 0 + movs r1, 0x2F + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x37 + adds r0, r6, 0 + movs r1, 0x30 + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x23 + adds r2, r4, 0 + bl pokemon_setattr + mov r4, sp + adds r4, 0x35 + movs r0, 0 + strb r0, [r4] + ldrh r0, [r5, 0x28] + cmp r0, 0 + beq _0804DAC0 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0804DAB4 + add r0, sp, 0x10 + adds r1, r5, 0 + bl sub_804DAD4 + ldr r0, _0804DAB0 + add r1, sp, 0x10 + ldm r1!, {r2,r3,r7} + stm r0!, {r2,r3,r7} + ldm r1!, {r2,r3,r7} + stm r0!, {r2,r3,r7} + ldm r1!, {r2,r3,r7} + stm r0!, {r2,r3,r7} + adds r0, r6, 0 + movs r1, 0x40 + adds r2, r4, 0 + bl pokemon_setattr + adds r2, r5, 0 + adds r2, 0x28 + adds r0, r6, 0 + movs r1, 0xC + bl pokemon_setattr + b _0804DAC0 + .align 2, 0 +_0804DAA4: .4byte gIngameTrades +_0804DAA8: .4byte 0x03004360 +_0804DAAC: .4byte 0x030045c0 +_0804DAB0: .4byte 0x02029700 +_0804DAB4: + adds r2, r5, 0 + adds r2, 0x28 + adds r0, r6, 0 + movs r1, 0xC + bl pokemon_setattr +_0804DAC0: + ldr r0, _0804DAD0 + bl pokemon_calc_effective_stats + add sp, 0x38 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804DAD0: .4byte 0x030045c0 + thumb_func_end sub_804D948 + + thumb_func_start sub_804DAD4 +sub_804DAD4: @ 804DAD4 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r2, _0804DB28 + adds r0, r5, 0 + adds r0, 0x2A + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + adds r1, r4, 0 + movs r3, 0x8 +_0804DAEE: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _0804DAEE + adds r0, r4, 0 + adds r0, 0x12 + adds r1, r5, 0 + adds r1, 0x2B + bl StringCopy + ldr r1, [r5, 0x18] + lsrs r0, r1, 24 + strb r0, [r4, 0x1A] + lsrs r0, r1, 16 + strb r0, [r4, 0x1B] + lsrs r0, r1, 8 + strb r0, [r4, 0x1C] + strb r1, [r4, 0x1D] + ldrh r0, [r5, 0xC] + strh r0, [r4, 0x1E] + ldrh r0, [r5, 0x28] + strh r0, [r4, 0x20] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804DB28: .4byte gUnknown_08215B78 + thumb_func_end sub_804DAD4 + + thumb_func_start sub_804DB2C +sub_804DB2C: @ 804DB2C + push {r4-r6,lr} + ldr r6, _0804DB58 + ldrh r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _0804DB5C + adds r0, r4 + movs r1, 0x2D + bl PokemonGetField + cmp r0, 0 + bne _0804DB60 + ldrh r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r0, 16 + b _0804DB62 + .align 2, 0 +_0804DB58: .4byte 0x0202e8ce +_0804DB5C: .4byte 0x03004360 +_0804DB60: + movs r0, 0 +_0804DB62: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_804DB2C + + thumb_func_start sub_804DB68 +sub_804DB68: @ 804DB68 + push {lr} + ldr r0, _0804DB7C + ldrb r0, [r0] + ldr r1, _0804DB80 + ldrb r1, [r1] + bl sub_804D948 + pop {r0} + bx r0 + .align 2, 0 +_0804DB7C: .4byte 0x0202e8ce +_0804DB80: .4byte 0x0202e8cc + thumb_func_end sub_804DB68 + + thumb_func_start sub_804DB84 +sub_804DB84: @ 804DB84 + push {r4-r6,lr} + bl sub_804C29C + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1 + bne _0804DBE6 + ldr r5, _0804DC04 + ldr r0, [r5] + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0804DC08 + adds r0, r4 + bl DestroySprite + ldr r0, [r5] + adds r0, 0xB9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl FreeSpriteOamMatrix + ldr r0, _0804DC0C + ldrb r4, [r0] + ldrb r0, [r0, 0x1] + movs r1, 0x6 + bl __umodsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_804BA94 + ldr r0, [r5] + adds r2, r0, 0 + adds r2, 0x9E + ldr r1, _0804DC10 + strh r1, [r2] + adds r0, 0xBD + strb r6, [r0] + ldr r0, _0804DC14 + bl SetMainCallback2 +_0804DBE6: + bl sub_804BB78 + bl sub_804D63C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804DC04: .4byte 0x03004828 +_0804DC08: .4byte 0x02020004 +_0804DC0C: .4byte 0x020297d8 +_0804DC10: .4byte 0x0000abcd +_0804DC14: .4byte sub_804DC18 + thumb_func_end sub_804DB84 + + thumb_func_start sub_804DC18 +sub_804DC18: @ 804DC18 + push {r4,lr} + bl sub_804B2B0 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_804D63C + cmp r4, 0 + bne _0804DC64 + ldr r4, _0804DC7C + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x9C + ldrh r1, [r0] + ldr r0, _0804DC80 + cmp r1, r0 + bne _0804DC64 + adds r1, r2, 0 + adds r1, 0x9E + ldr r0, _0804DC84 + strh r0, [r1] + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + adds r1, 0x9E + movs r2, 0x14 + bl SendBlock + ldr r0, [r4] + adds r0, 0x9C + movs r1, 0x2 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9D + strb r1, [r0] +_0804DC64: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804DC7C: .4byte 0x03004828 +_0804DC80: .4byte 0x00000101 +_0804DC84: .4byte 0x0000dcba + thumb_func_end sub_804DC18 + + thumb_func_start sub_804DC88 +sub_804DC88: @ 804DC88 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _0804DCA8 + ldr r2, _0804DCAC + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x65 + bls _0804DC9C + b _0804E11A +_0804DC9C: + lsls r0, 2 + ldr r1, _0804DCB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804DCA8: .4byte 0x03001770 +_0804DCAC: .4byte 0x0000043c +_0804DCB0: .4byte _0804DCB4 + .align 2, 0 +_0804DCB4: + .4byte _0804DE4C + .4byte _0804DE9C + .4byte _0804DF14 + .4byte _0804E11A + .4byte _0804DFE0 + .4byte _0804E078 + .4byte _0804E0A0 + .4byte _0804E0BC + .4byte _0804E0E4 + .4byte _0804E10C + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E008 + .4byte _0804E034 + .4byte _0804E04C + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804DF54 + .4byte _0804DF7C + .4byte _0804DF9C + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804E11A + .4byte _0804DEB4 + .4byte _0804DEF4 +_0804DE4C: + ldr r5, _0804DE88 + ldr r0, _0804DE8C + str r0, [r5] + ldr r1, _0804DE90 + adds r2, r1 + ldrb r1, [r2] + adds r1, 0x1 + strb r1, [r2] + adds r0, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1D + bl ZeroFillWindowRect + ldr r4, _0804DE94 + ldr r1, _0804DE98 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r1, [r5] + adds r0, r1, 0x4 + adds r1, 0x34 + ldrb r2, [r1] + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + b _0804DF3E + .align 2, 0 +_0804DE88: .4byte 0x03004828 +_0804DE8C: .4byte 0x0201f000 +_0804DE90: .4byte 0x0000043c +_0804DE94: .4byte 0x020234cc +_0804DE98: .4byte gUnknown_0842D1EE +_0804DE9C: + bl sub_80084A4 + ldr r0, _0804DEAC + ldr r2, _0804DEB0 + adds r0, r2 + movs r2, 0 + movs r1, 0x64 + b _0804DFEE + .align 2, 0 +_0804DEAC: .4byte 0x03001770 +_0804DEB0: .4byte 0x0000043c +_0804DEB4: + ldr r0, _0804DEE8 + ldr r0, [r0] + adds r3, r0, 0 + adds r3, 0xC0 + ldr r0, [r3] + adds r0, 0x1 + str r0, [r3] + cmp r0, 0xB4 + bls _0804DED2 + ldr r1, _0804DEEC + adds r0, r2, r1 + movs r2, 0 + movs r1, 0x65 + strb r1, [r0] + str r2, [r3] +_0804DED2: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0804DEDE + b _0804E11A +_0804DEDE: + ldr r0, _0804DEF0 + ldr r2, _0804DEEC + adds r0, r2 + b _0804DF06 + .align 2, 0 +_0804DEE8: .4byte 0x03004828 +_0804DEEC: .4byte 0x0000043c +_0804DEF0: .4byte 0x03001770 +_0804DEF4: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0804DF00 + b _0804E11A +_0804DF00: + ldr r0, _0804DF0C + ldr r1, _0804DF10 + adds r0, r1 +_0804DF06: + movs r1, 0x2 + strb r1, [r0] + b _0804E11A + .align 2, 0 +_0804DF0C: .4byte 0x03001770 +_0804DF10: .4byte 0x0000043c +_0804DF14: + ldr r0, _0804DF48 + adds r1, r2, r0 + movs r0, 0x32 + strb r0, [r1] + ldr r4, _0804DF4C + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0x13 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x1D + bl ZeroFillWindowRect + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _0804DF50 + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] +_0804DF3E: + movs r3, 0x2 + bl sub_8003460 + b _0804E11A + .align 2, 0 +_0804DF48: .4byte 0x0000043c +_0804DF4C: .4byte 0x03004828 +_0804DF50: .4byte gUnknown_08411905 +_0804DF54: + bl sub_8047A1C + movs r0, 0x15 + bl sav12_xor_increment + bl sub_8125D80 + ldr r1, _0804DF74 + ldr r2, _0804DF78 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + b _0804DFF0 + .align 2, 0 +_0804DF74: .4byte 0x03001770 +_0804DF78: .4byte 0x0000043c +_0804DF7C: + ldr r0, _0804DF94 + ldr r1, [r0] + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x5 + beq _0804DF8E + b _0804E11A +_0804DF8E: + ldr r0, _0804DF98 + adds r1, r2, r0 + b _0804E0FA + .align 2, 0 +_0804DF94: .4byte 0x03004828 +_0804DF98: .4byte 0x0000043c +_0804DF9C: + bl sub_8125DA8 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _0804DFC0 + bl sub_8047A34 + ldr r0, _0804DFB8 + ldr r1, _0804DFBC + adds r0, r1 + movs r1, 0x4 + strb r1, [r0] + b _0804E11A + .align 2, 0 +_0804DFB8: .4byte 0x03001770 +_0804DFBC: .4byte 0x0000043c +_0804DFC0: + ldr r0, _0804DFD4 + ldr r0, [r0] + adds r0, 0xC0 + str r1, [r0] + ldr r0, _0804DFD8 + ldr r2, _0804DFDC + adds r0, r2 + movs r1, 0x33 + strb r1, [r0] + b _0804E11A + .align 2, 0 +_0804DFD4: .4byte 0x03004828 +_0804DFD8: .4byte 0x03001770 +_0804DFDC: .4byte 0x0000043c +_0804DFE0: + bl sub_8125DDC + ldr r0, _0804DFFC + ldr r1, _0804E000 + adds r0, r1 + movs r2, 0 + movs r1, 0x28 +_0804DFEE: + strb r1, [r0] +_0804DFF0: + ldr r0, _0804E004 + ldr r0, [r0] + adds r0, 0xC0 + str r2, [r0] + b _0804E11A + .align 2, 0 +_0804DFFC: .4byte 0x03001770 +_0804E000: .4byte 0x0000043c +_0804E004: .4byte 0x03004828 +_0804E008: + ldr r0, _0804E02C + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x32 + bhi _0804E01C + b _0804E11A +_0804E01C: + movs r0, 0 + str r0, [r1] + ldr r0, _0804E030 + adds r1, r2, r0 + movs r0, 0x29 + strb r0, [r1] + b _0804E11A + .align 2, 0 +_0804E02C: .4byte 0x03004828 +_0804E030: .4byte 0x0000043c +_0804E034: + bl sub_80084A4 + ldr r0, _0804E044 + ldr r1, _0804E048 + adds r0, r1 + movs r1, 0x2A + strb r1, [r0] + b _0804E11A + .align 2, 0 +_0804E044: .4byte 0x03001770 +_0804E048: .4byte 0x0000043c +_0804E04C: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _0804E11A + bl sub_8125E04 + ldr r1, _0804E06C + movs r0, 0 + strb r0, [r1] + ldr r0, _0804E070 + ldr r2, _0804E074 + adds r0, r2 + movs r1, 0x5 + strb r1, [r0] + b _0804E11A + .align 2, 0 +_0804E06C: .4byte 0x03001bb4 +_0804E070: .4byte 0x03001770 +_0804E074: .4byte 0x0000043c +_0804E078: + ldr r0, _0804E098 + ldr r1, [r0] + adds r1, 0xC0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bls _0804E11A + ldr r0, _0804E09C + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_80084A4 + b _0804E11A + .align 2, 0 +_0804E098: .4byte 0x03004828 +_0804E09C: .4byte 0x0000043c +_0804E0A0: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _0804E11A + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0804E0F4 +_0804E0BC: + ldr r0, _0804E0D8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804E11A + movs r0, 0x3 + bl play_sound_effect + ldr r1, _0804E0DC + ldr r0, _0804E0E0 + adds r1, r0 + b _0804E0FA + .align 2, 0 +_0804E0D8: .4byte 0x0202f388 +_0804E0DC: .4byte 0x03001770 +_0804E0E0: .4byte 0x0000043c +_0804E0E4: + bl sub_8075028 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0804E11A + bl sub_800832C +_0804E0F4: + ldr r1, _0804E104 + ldr r2, _0804E108 + adds r1, r2 +_0804E0FA: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804E11A + .align 2, 0 +_0804E104: .4byte 0x03001770 +_0804E108: .4byte 0x0000043c +_0804E10C: + ldr r0, _0804E13C + ldrb r0, [r0] + cmp r0, 0 + bne _0804E11A + ldr r0, _0804E140 + bl SetMainCallback2 +_0804E11A: + bl HasLinkErrorOccurred + lsls r0, 24 + cmp r0, 0 + bne _0804E128 + bl RunTasks +_0804E128: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E13C: .4byte 0x03002fa4 +_0804E140: .4byte sub_804E144 + thumb_func_end sub_804DC88 + + thumb_func_start sub_804E144 +sub_804E144: @ 804E144 + push {lr} + ldr r0, _0804E16C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804E158 + ldr r0, _0804E170 + bl SetMainCallback2 +_0804E158: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 +_0804E16C: .4byte 0x0202f388 +_0804E170: .4byte sub_8047CD8 + thumb_func_end sub_804E144 + + thumb_func_start sub_804E174 +sub_804E174: @ 804E174 + push {lr} + sub sp, 0x4 + bl script_env_2_enable + ldr r0, _0804E19C + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0804E19C: .4byte sub_804E1A0 + thumb_func_end sub_804E174 + + thumb_func_start sub_804E1A0 +sub_804E1A0: @ 804E1A0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0804E1CC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804E1C4 + ldr r0, _0804E1D0 + bl SetMainCallback2 + ldr r1, _0804E1D4 + ldr r0, _0804E1D8 + str r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_0804E1C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804E1CC: .4byte 0x0202f388 +_0804E1D0: .4byte sub_804B790 +_0804E1D4: .4byte 0x0300485c +_0804E1D8: .4byte sub_8080990 + thumb_func_end sub_804E1A0 + + thumb_func_start sub_804E1DC +sub_804E1DC: @ 804E1DC + push {r4,r5,lr} + movs r5, 0 + movs r4, 0 +_0804E1E2: + ldr r0, _0804E220 + ldrb r0, [r0, 0x1] + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0804E224 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x43 + bl PokemonGetField + adds r0, r5, r0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xB + bls _0804E1E2 + cmp r5, 0 + beq _0804E21A + ldr r0, _0804E228 + bl FlagSet +_0804E21A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E220: .4byte 0x020297d8 +_0804E224: .4byte 0x030045c0 +_0804E228: .4byte 0x0000083b + thumb_func_end sub_804E1DC + + thumb_func_start sub_804E22C +sub_804E22C: @ 804E22C + push {r4,lr} + ldr r0, _0804E26C + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _0804E270 + ldr r4, _0804E274 + movs r2, 0x80 + lsls r2, 4 + adds r1, r4, 0 + bl CpuSet + ldr r1, _0804E278 + ldr r0, _0804E27C + str r4, [r0] + str r1, [r0, 0x4] + ldr r1, _0804E280 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _0804E284 + movs r1, 0 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, _0804E288 + ldr r2, _0804E28C + adds r0, r2, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804E26C: .4byte gUnknown_08D00000 +_0804E270: .4byte gUnknown_08D00524 +_0804E274: .4byte 0x02000000 +_0804E278: .4byte 0x06002800 +_0804E27C: .4byte 0x040000d4 +_0804E280: .4byte 0x80000280 +_0804E284: .4byte gUnknown_08D004E0 +_0804E288: .4byte 0x0400000a +_0804E28C: .4byte 0x00000502 + thumb_func_end sub_804E22C + + thumb_func_start sub_804E290 +sub_804E290: @ 804E290 + push {lr} + ldr r0, _0804E2B0 + ldr r1, _0804E2B4 + ldr r2, _0804E2B8 + ldr r2, [r2] + adds r2, 0x56 + movs r3, 0 + ldrsh r2, [r2, r3] + subs r2, 0x80 + lsls r2, 17 + asrs r2, 16 + bl m4aMPlayPitchControl + pop {r0} + bx r0 + .align 2, 0 +_0804E2B0: .4byte 0x03007400 +_0804E2B4: .4byte 0x0000ffff +_0804E2B8: .4byte 0x03004854 + thumb_func_end sub_804E290 + + thumb_func_start sub_804E2BC +sub_804E2BC: @ 804E2BC + push {lr} + bl sub_80514A4 + bl sub_80514F0 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_804E2BC + + thumb_func_start sub_804E2D8 +sub_804E2D8: @ 804E2D8 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_804E2D8 + + thumb_func_start sub_804E2EC +sub_804E2EC: @ 804E2EC + push {r4-r7,lr} + ldr r1, _0804E308 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + mov r12, r1 + cmp r0, 0x9 + bls _0804E2FC + b _0804E4F4 +_0804E2FC: + lsls r0, 2 + ldr r1, _0804E30C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804E308: .4byte 0x03004854 +_0804E30C: .4byte _0804E310 + .align 2, 0 +_0804E310: + .4byte _0804E338 + .4byte _0804E34C + .4byte _0804E380 + .4byte _0804E3C4 + .4byte _0804E3D8 + .4byte _0804E3EC + .4byte _0804E410 + .4byte _0804E434 + .4byte _0804E48C + .4byte _0804E4BC +_0804E338: + ldr r0, _0804E344 + ldr r1, _0804E348 + bl sub_800D238 + b _0804E49E + .align 2, 0 +_0804E344: .4byte gUnknown_08E6C100 +_0804E348: .4byte 0x02010000 +_0804E34C: + ldr r1, _0804E36C + ldr r2, _0804E370 + ldr r0, _0804E374 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804E378 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _0804E37C + movs r2, 0x80 + lsls r2, 1 + movs r1, 0 + bl LoadPalette + b _0804E49E + .align 2, 0 +_0804E36C: .4byte gUnknown_08215C2C +_0804E370: .4byte 0x06004000 +_0804E374: .4byte 0x040000d4 +_0804E378: .4byte 0x80000200 +_0804E37C: .4byte gUnknown_08215C0C +_0804E380: + ldr r3, _0804E3B8 + movs r4, 0xC0 + lsls r4, 19 + movs r5, 0x80 + lsls r5, 6 + ldr r1, _0804E3BC + ldr r6, _0804E3C0 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_0804E396: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _0804E396 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, r12 + b _0804E4A0 + .align 2, 0 +_0804E3B8: .4byte 0x02010000 +_0804E3BC: .4byte 0x040000d4 +_0804E3C0: .4byte 0x80000800 +_0804E3C4: + ldr r0, _0804E3D0 + ldr r1, _0804E3D4 + bl sub_800D238 + b _0804E49E + .align 2, 0 +_0804E3D0: .4byte gUnknown_08E6C920 +_0804E3D4: .4byte 0x02010000 +_0804E3D8: + ldr r0, _0804E3E4 + ldr r1, _0804E3E8 + bl sub_800D238 + b _0804E49E + .align 2, 0 +_0804E3E4: .4byte gUnknown_08E6D354 +_0804E3E8: .4byte 0x02013000 +_0804E3EC: + ldr r1, _0804E400 + ldr r2, _0804E404 + ldr r0, _0804E408 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804E40C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r12 + b _0804E4A0 + .align 2, 0 +_0804E400: .4byte 0x02010000 +_0804E404: .4byte 0x0600e000 +_0804E408: .4byte 0x040000d4 +_0804E40C: .4byte 0x80000800 +_0804E410: + ldr r1, _0804E424 + ldr r2, _0804E428 + ldr r0, _0804E42C + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804E430 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r12 + b _0804E4A0 + .align 2, 0 +_0804E424: .4byte 0x02011000 +_0804E428: .4byte 0x0600f000 +_0804E42C: .4byte 0x040000d4 +_0804E430: .4byte 0x80000800 +_0804E434: + ldr r3, _0804E474 + movs r2, 0 + adds r6, r3, 0 + ldr r7, _0804E478 + movs r0, 0x80 + lsls r0, 1 + adds r5, r0, 0 + ldr r4, _0804E47C +_0804E444: + lsls r0, r2, 1 + adds r0, r3 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r4 + bls _0804E444 + ldr r1, _0804E480 + ldr r0, _0804E484 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _0804E488 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + adds r0, r7, 0 + movs r1, 0x80 + movs r2, 0x20 + bl LoadPalette + b _0804E49E + .align 2, 0 +_0804E474: .4byte 0x02013000 +_0804E478: .4byte gUnknown_0821602C +_0804E47C: .4byte 0x0000027f +_0804E480: .4byte 0x06006000 +_0804E484: .4byte 0x040000d4 +_0804E488: .4byte 0x80000280 +_0804E48C: + ldr r0, _0804E4AC + bl LoadSpriteSheet + ldr r0, _0804E4B0 + bl LoadSpriteSheet + ldr r0, _0804E4B4 + bl LoadSpriteSheet +_0804E49E: + ldr r0, _0804E4B8 +_0804E4A0: + ldr r1, [r0] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + b _0804E4F4 + .align 2, 0 +_0804E4AC: .4byte gUnknown_082163DC +_0804E4B0: .4byte gUnknown_082164F4 +_0804E4B4: .4byte gUnknown_08216454 +_0804E4B8: .4byte 0x03004854 +_0804E4BC: + ldr r0, _0804E4E0 + bl LoadSpriteSheet + ldr r0, _0804E4E4 + bl LoadSpriteSheet + ldr r0, _0804E4E8 + bl LoadSpritePalette + ldr r0, _0804E4EC + bl LoadSpritePalette + ldr r0, _0804E4F0 + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x1] + movs r0, 0x1 + b _0804E4F6 + .align 2, 0 +_0804E4E0: .4byte gUnknown_08216540 +_0804E4E4: .4byte gUnknown_08216574 +_0804E4E8: .4byte gUnknown_082163EC +_0804E4EC: .4byte gUnknown_082163E4 +_0804E4F0: .4byte 0x03004854 +_0804E4F4: + movs r0, 0 +_0804E4F6: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804E2EC + + thumb_func_start sub_804E4FC +sub_804E4FC: @ 804E4FC + movs r1, 0x80 + lsls r1, 19 + ldr r2, _0804E52C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0xC + movs r2, 0x91 + lsls r2, 7 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _0804E530 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804E534 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_0804E52C: .4byte 0x00001341 +_0804E530: .4byte 0x00000c0d +_0804E534: .4byte 0x04000010 + thumb_func_end sub_804E4FC + + thumb_func_start sub_804E538 +sub_804E538: @ 804E538 + push {lr} + ldr r1, _0804E55C + ldr r0, _0804E560 + str r0, [r1] + adds r2, r0, 0 + adds r2, 0x6F + movs r1, 0 + strb r1, [r0] + strb r1, [r2] + ldr r0, _0804E564 + ldrb r0, [r0] + bl sub_804E884 + ldr r0, _0804E568 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0804E55C: .4byte 0x03004854 +_0804E560: .4byte 0x02018000 +_0804E564: .4byte 0x0202e8cc +_0804E568: .4byte sub_804E56C + thumb_func_end sub_804E538 + + thumb_func_start sub_804E56C +sub_804E56C: @ 804E56C + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _0804E588 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x6 + bls _0804E57C + b _0804E71A +_0804E57C: + lsls r0, 2 + ldr r1, _0804E58C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804E588: .4byte 0x03004854 +_0804E58C: .4byte _0804E590 + .align 2, 0 +_0804E590: + .4byte _0804E5AC + .4byte _0804E614 + .4byte _0804E67C + .4byte _0804E692 + .4byte _0804E6A8 + .4byte _0804E6D4 + .4byte _0804E700 +_0804E5AC: + movs r0, 0x80 + lsls r0, 19 + movs r5, 0 + strh r5, [r0] + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, 0 + bl SetVBlankCallback + ldr r4, _0804E60C + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl sub_8071C4C + ldr r3, _0804E610 + ldr r2, [r3] + ldrb r0, [r2] + adds r0, 0x1 + movs r1, 0 + strb r0, [r2] + ldr r2, [r3] + movs r3, 0xA0 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + subs r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + movs r0, 0xA1 + lsls r0, 1 + adds r3, r2, r0 + movs r0, 0x50 + strh r0, [r3] + movs r3, 0xA2 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + strb r5, [r2, 0x1] + bl sub_8051474 + b _0804E71A + .align 2, 0 +_0804E60C: .4byte gWindowConfig_81E6F68 +_0804E610: .4byte 0x03004854 +_0804E614: + bl sub_804E2EC + lsls r0, 24 + cmp r0, 0 + bne _0804E620 + b _0804E71A +_0804E620: + movs r4, 0 + ldr r5, _0804E668 + ldr r6, _0804E66C +_0804E626: + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + ldr r0, _0804E670 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + adds r1, 0x5C + adds r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x5C + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804E674 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _0804E626 + ldr r0, _0804E678 + bl SetVBlankCallback + b _0804E6BE + .align 2, 0 +_0804E668: .4byte gUnknown_082162E4 +_0804E66C: .4byte 0x03004854 +_0804E670: .4byte gSpriteTemplate_82163F4 +_0804E674: .4byte 0x02020004 +_0804E678: .4byte sub_804E2BC +_0804E67C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + bl sub_8051474 + b _0804E6BE +_0804E692: + bl sub_804E4FC + ldr r0, _0804E6A4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804E71A + b _0804E6BE + .align 2, 0 +_0804E6A4: .4byte 0x0202f388 +_0804E6A8: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl DrawDefaultWindow + ldr r0, _0804E6CC + movs r1, 0x1 + movs r2, 0xF + bl AddTextPrinterWithCallbackForMessage +_0804E6BE: + ldr r0, _0804E6D0 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804E71A + .align 2, 0 +_0804E6CC: .4byte gUnknown_0842D307 +_0804E6D0: .4byte 0x03004854 +_0804E6D4: + bl sub_8072080 + lsls r0, 24 + cmp r0, 0 + beq _0804E71A + ldr r0, _0804E6FC + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0804E71A + .align 2, 0 +_0804E6FC: .4byte 0x03004854 +_0804E700: + ldr r0, _0804E730 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0804E71A + bl sub_80A6978 + ldr r0, _0804E734 + ldr r0, [r0] + strb r4, [r0] +_0804E71A: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804E730: .4byte 0x0202f388 +_0804E734: .4byte 0x03004854 + thumb_func_end sub_804E56C + + thumb_func_start sub_804E738 +sub_804E738: @ 804E738 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + subs r1, r2 + ldrh r0, [r4, 0x3C] + adds r1, r0 + strh r1, [r4, 0x32] + ldrh r3, [r4, 0x2E] + adds r0, r3 + strh r0, [r4, 0x2E] + subs r2, 0x1 + strh r2, [r4, 0x36] + lsls r0, 16 + lsls r1, 16 + cmp r0, r1 + bge _0804E786 + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x36] + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0804E780 + adds r0, r4, 0 + bl DestroySprite + b _0804E786 +_0804E780: + movs r0, 0x74 + bl audio_play +_0804E786: + ldrh r0, [r4, 0x30] + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x32] + strh r0, [r4, 0x22] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804E738 + + thumb_func_start sub_804E794 +sub_804E794: @ 804E794 + push {r4-r6,lr} + ldr r5, [sp, 0x10] + ldr r6, [sp, 0x14] + lsls r2, 16 + lsrs r2, 16 + movs r4, 0 + strh r2, [r0, 0x2E] + strh r1, [r0, 0x30] + strh r2, [r0, 0x32] + strh r3, [r0, 0x34] + movs r1, 0xA + strh r1, [r0, 0x36] + strh r4, [r0, 0x38] + strh r5, [r0, 0x3A] + strh r6, [r0, 0x3C] + ldr r1, _0804E7BC + str r1, [r0, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804E7BC: .4byte sub_804E738 + thumb_func_end sub_804E794 + + thumb_func_start sub_804E7C0 +sub_804E7C0: @ 804E7C0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + adds r6, r1, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r0, 24 + movs r1, 0xF6 + lsls r1, 23 + adds r0, r1 + lsrs r0, 24 + movs r3, 0x1 + ands r3, r6 + movs r1, 0 + movs r2, 0x50 + bl sub_80A7DEC + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + mov r8, r2 + add r8, r0 + mov r3, r8 + lsls r3, 2 + mov r8, r3 + ldr r0, _0804E83C + add r8, r0 + ldr r5, _0804E840 + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 1 + adds r0, r4, r5 + movs r6, 0 + ldrsh r1, [r0, r6] + adds r0, r5, 0x2 + adds r0, r4, r0 + movs r3, 0 + ldrsh r2, [r0, r3] + adds r0, r5, 0x4 + adds r0, r4, r0 + movs r6, 0 + ldrsh r3, [r0, r6] + adds r0, r5, 0x6 + adds r0, r4, r0 + movs r6, 0 + ldrsh r0, [r0, r6] + str r0, [sp] + adds r5, 0x8 + adds r4, r5 + movs r5, 0 + ldrsh r0, [r4, r5] + str r0, [sp, 0x4] + mov r0, r8 + bl sub_804E794 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804E83C: .4byte 0x02020004 +_0804E840: .4byte gUnknown_08216594 + thumb_func_end sub_804E7C0 + + thumb_func_start sub_804E844 +sub_804E844: @ 804E844 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r5, r1, 16 + lsrs r5, 16 + adds r0, r5, 0 + adds r0, 0x7C + lsls r0, 24 + lsrs r0, 24 + bl GetBerryInfo + adds r4, r0, 0 + strh r5, [r6] + adds r0, r6, 0x2 + adds r1, r4, 0 + bl StringCopy + ldrb r0, [r4, 0x15] + strb r0, [r6, 0x9] + ldrb r0, [r4, 0x16] + strb r0, [r6, 0xA] + ldrb r0, [r4, 0x17] + strb r0, [r6, 0xB] + ldrb r0, [r4, 0x18] + strb r0, [r6, 0xC] + ldrb r0, [r4, 0x19] + strb r0, [r6, 0xD] + ldrb r0, [r4, 0x1A] + strb r0, [r6, 0xE] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804E844 + + thumb_func_start sub_804E884 +sub_804E884: @ 804E884 + push {r4,r5,lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _0804E89E + ldr r2, _0804E8AC + movs r3, 0x2 + adds r0, r2, 0 + adds r0, 0x54 +_0804E896: + strh r3, [r0, 0x1A] + subs r0, 0x1C + cmp r0, r2 + bge _0804E896 +_0804E89E: + cmp r1, 0x1 + beq _0804E8C4 + cmp r1, 0x1 + bgt _0804E8B0 + cmp r1, 0 + beq _0804E8BA + b _0804E974 + .align 2, 0 +_0804E8AC: .4byte 0x03002970 +_0804E8B0: + cmp r1, 0x2 + beq _0804E8F8 + cmp r1, 0x3 + beq _0804E93C + b _0804E974 +_0804E8BA: + ldr r0, _0804E8C0 + strb r1, [r0] + b _0804E974 + .align 2, 0 +_0804E8C0: .4byte 0x03004834 +_0804E8C4: + ldr r0, _0804E8E4 + strb r1, [r0] + ldr r0, _0804E8E8 + ldr r0, [r0] + adds r0, 0x88 + movs r1, 0x2 + strb r1, [r0] + ldr r4, _0804E8EC + ldr r1, _0804E8F0 + adds r0, r4, 0 + bl StringCopy + adds r4, 0x1C + ldr r0, _0804E8F4 + ldr r1, [r0] + b _0804E920 + .align 2, 0 +_0804E8E4: .4byte 0x03004834 +_0804E8E8: .4byte 0x03004854 +_0804E8EC: .4byte 0x03002978 +_0804E8F0: .4byte 0x02024ea4 +_0804E8F4: .4byte gUnknown_082162B8 +_0804E8F8: + ldr r0, _0804E928 + strb r1, [r0] + ldr r0, _0804E92C + ldr r0, [r0] + adds r0, 0x88 + movs r1, 0x3 + strb r1, [r0] + ldr r4, _0804E930 + ldr r1, _0804E934 + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + adds r0, 0x1C + ldr r5, _0804E938 + ldr r1, [r5] + bl StringCopy + adds r4, 0x38 + ldr r1, [r5, 0x4] +_0804E920: + adds r0, r4, 0 + bl StringCopy + b _0804E974 + .align 2, 0 +_0804E928: .4byte 0x03004834 +_0804E92C: .4byte 0x03004854 +_0804E930: .4byte 0x03002978 +_0804E934: .4byte 0x02024ea4 +_0804E938: .4byte gUnknown_082162B8 +_0804E93C: + ldr r0, _0804E97C + strb r1, [r0] + ldr r0, _0804E980 + ldr r0, [r0] + adds r0, 0x88 + movs r1, 0x4 + strb r1, [r0] + ldr r4, _0804E984 + ldr r1, _0804E988 + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + adds r0, 0x1C + ldr r5, _0804E98C + ldr r1, [r5] + bl StringCopy + adds r0, r4, 0 + adds r0, 0x38 + ldr r1, [r5, 0x4] + bl StringCopy + adds r4, 0x54 + ldr r1, [r5, 0x8] + adds r0, r4, 0 + bl StringCopy +_0804E974: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E97C: .4byte 0x03004834 +_0804E980: .4byte 0x03004854 +_0804E984: .4byte 0x03002978 +_0804E988: .4byte 0x02024ea4 +_0804E98C: .4byte gUnknown_082162B8 + thumb_func_end sub_804E884 + + thumb_func_start sub_804E990 +sub_804E990: @ 804E990 + push {r4,r5,lr} + movs r0, 0x80 + lsls r0, 19 + movs r2, 0 + strh r2, [r0] + ldr r3, _0804E9D8 + ldr r0, _0804E9DC + str r0, [r3] + movs r1, 0 + strb r2, [r0] + movs r2, 0x9A + lsls r2, 1 + adds r0, r2 + str r1, [r0] + movs r2, 0 + ldr r5, _0804E9E0 + adds r4, r3, 0 + movs r3, 0 +_0804E9B4: + ldr r0, [r4] + lsls r1, r2, 1 + adds r0, 0x80 + adds r0, r1 + strh r3, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _0804E9B4 + ldrb r0, [r5] + bl sub_804E884 + ldrh r0, [r5] + cmp r0, 0 + bne _0804E9E8 + ldr r0, _0804E9E4 + bl SetMainCallback2 + b _0804E9EE + .align 2, 0 +_0804E9D8: .4byte 0x03004854 +_0804E9DC: .4byte 0x02018000 +_0804E9E0: .4byte 0x0202e8cc +_0804E9E4: .4byte sub_804E9F8 +_0804E9E8: + ldr r0, _0804E9F4 + bl SetMainCallback2 +_0804E9EE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E9F4: .4byte sub_804F378 + thumb_func_end sub_804E990 + + thumb_func_start sub_804E9F8 +sub_804E9F8: @ 804E9F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r1, _0804EA18 + ldr r0, [r1] + ldrb r0, [r0] + mov r8, r1 + cmp r0, 0x66 + bls _0804EA0E + b _0804F0CE +_0804EA0E: + lsls r0, 2 + ldr r1, _0804EA1C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804EA18: .4byte 0x03004854 +_0804EA1C: .4byte _0804EA20 + .align 2, 0 +_0804EA20: + .4byte _0804EBBC + .4byte _0804EC74 + .4byte _0804EC94 + .4byte _0804ECE8 + .4byte _0804ECFA + .4byte _0804ED14 + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804ED48 + .4byte _0804ED94 + .4byte _0804EDB8 + .4byte _0804EE46 + .4byte _0804EEA0 + .4byte _0804EF16 + .4byte _0804EF34 + .4byte _0804EFD8 + .4byte _0804F00C + .4byte _0804F0CE + .4byte _0804F020 + .4byte _0804F024 + .4byte _0804F02A + .4byte _0804F03A + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F084 + .4byte _0804F0A0 + .4byte _0804F0BC +_0804EBBC: + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0804EC60 + bl SetVBlankCallback + ldr r4, _0804EC64 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl sub_8071C4C + ldr r1, _0804EC68 + ldr r2, _0804EC6C + adds r0, r2, 0 + strh r0, [r1] + ldr r3, _0804EC70 + ldr r1, [r3] + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, [r3] + adds r4, r0, 0 + adds r4, 0x4E + movs r1, 0 + strh r2, [r4] + adds r0, 0x7E + strb r1, [r0] + ldr r1, [r3] + movs r4, 0xA2 + lsls r4, 1 + adds r0, r1, r4 + strh r2, [r0] + adds r4, 0x2 + adds r0, r1, r4 + strh r2, [r0] + movs r5, 0 + movs r6, 0 + mov r8, r3 + movs r7, 0xA6 + lsls r7, 1 +_0804EC18: + ldr r0, [r3] + lsls r1, r5, 1 + adds r0, 0x70 + adds r0, r1 + strh r6, [r0] + adds r4, r5, 0x1 + adds r1, r5 + lsls r1, 1 + movs r2, 0x2 +_0804EC2A: + ldr r0, [r3] + adds r0, r7 + adds r0, r1 + strh r6, [r0] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0804EC2A + adds r5, r4, 0 + cmp r5, 0x3 + ble _0804EC18 + mov r0, r8 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x7C + movs r2, 0 + movs r1, 0 + strh r1, [r0] + subs r0, 0x26 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r1, [r0] + strb r2, [r3, 0x1] + b _0804F0CE + .align 2, 0 +_0804EC60: .4byte sub_804E2BC +_0804EC64: .4byte gWindowConfig_81E6F68 +_0804EC68: .4byte 0x03002b74 +_0804EC6C: .4byte 0x00004422 +_0804EC70: .4byte 0x03004854 +_0804EC74: + bl sub_804E2EC + lsls r0, 24 + cmp r0, 0 + bne _0804EC80 + b _0804F0CE +_0804EC80: + ldr r0, _0804EC90 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_8051474 + b _0804F0CE + .align 2, 0 +_0804EC90: .4byte 0x03004854 +_0804EC94: + movs r5, 0 + ldr r4, _0804ECD8 + ldr r6, _0804ECDC +_0804EC9A: + ldrb r1, [r4] + ldrb r2, [r4, 0x1] + ldr r0, _0804ECE0 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + adds r1, 0x60 + adds r1, r5 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x60 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804ECE4 + adds r0, r1 + adds r1, r5, 0 + adds r1, 0x8 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _0804EC9A + b _0804F0AA + .align 2, 0 +_0804ECD8: .4byte gUnknown_082162E4 +_0804ECDC: .4byte 0x03004854 +_0804ECE0: .4byte gSpriteTemplate_82163F4 +_0804ECE4: .4byte 0x02020004 +_0804ECE8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _0804F0AA +_0804ECFA: + bl sub_804E4FC + ldr r0, _0804ED10 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804ED0C + b _0804F0CE +_0804ED0C: + b _0804F0AA + .align 2, 0 +_0804ED10: .4byte 0x0202f388 +_0804ED14: + movs r0, 0 + movs r1, 0xD + movs r2, 0x1D + movs r3, 0x13 + bl DrawDefaultWindow + ldr r0, _0804ED40 + movs r1, 0x1 + movs r2, 0xE + bl Print + ldr r2, _0804ED44 + ldr r1, [r2] + movs r3, 0 + movs r0, 0x8 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + str r3, [r0] + b _0804F0CE + .align 2, 0 +_0804ED40: .4byte gUnknown_0842D3A5 +_0804ED44: .4byte 0x03004854 +_0804ED48: + mov r2, r8 + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + movs r5, 0 + strb r0, [r1] + ldr r0, [r2] + movs r3, 0x9E + lsls r3, 1 + adds r0, r3 + strb r5, [r0] + ldr r0, [r2] + movs r4, 0xBE + lsls r4, 1 + adds r0, r4 + ldr r1, _0804ED8C + ldrh r1, [r1] + bl sub_804E844 + ldr r0, _0804ED90 + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + movs r2, 0x10 + bl memcpy + bl sub_80084A4 + mov r3, r8 + ldr r0, [r3] + subs r4, 0x4C + adds r0, r4 + str r5, [r0] + b _0804F0CE + .align 2, 0 +_0804ED8C: .4byte 0x0203855e +_0804ED90: .4byte 0x03002a70 +_0804ED94: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0804EDA0 + b _0804F0CE +_0804EDA0: + bl ResetBlockReceivedFlags + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + beq _0804EDB0 + b _0804F0AA +_0804EDB0: + movs r0, 0x4 + bl sub_8007E9C + b _0804F0AA +_0804EDB8: + mov r0, r8 + ldr r1, [r0] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x14 + bgt _0804EDCE + b _0804F0CE +_0804EDCE: + bl sub_8071EF4 + bl GetBlockRecievedStatus + adds r4, r0, 0 + bl sub_8008198 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _0804EDE6 + b _0804F0CE +_0804EDE6: + movs r5, 0 + mov r7, r8 + movs r6, 0xBE + lsls r6, 1 + b _0804EE18 +_0804EDF0: + ldr r0, [r7] + lsls r4, r5, 4 + adds r0, r4, r0 + adds r0, r6 + lsls r1, r5, 8 + ldr r2, _0804EE2C + adds r1, r2 + movs r2, 0x10 + bl memcpy + ldr r0, [r7] + lsls r2, r5, 1 + adds r1, r0, 0 + adds r1, 0x80 + adds r1, r2 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r5, 0x1 +_0804EE18: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + blt _0804EDF0 + bl ResetBlockReceivedFlags + b _0804F0AA + .align 2, 0 +_0804EE2C: .4byte 0x03002b80 +_0804EE30: + ldrb r1, [r4] + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x80 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r5, 24 + lsrs r1, 24 + bl sub_804E7C0 + b _0804EE7A +_0804EE46: + bl GetLinkPlayerCount + ldr r2, _0804EE98 + ldr r1, [r2] + adds r1, 0x88 + strb r0, [r1] + movs r5, 0 + ldr r2, [r2] + movs r3, 0x9E + lsls r3, 1 + adds r4, r2, r3 + ldr r1, _0804EE9C + adds r0, r2, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 2 + ldrb r3, [r4] + adds r0, r1 +_0804EE6C: + ldrb r1, [r0] + cmp r3, r1 + beq _0804EE30 + adds r0, 0x1 + adds r5, 0x1 + cmp r5, 0x3 + ble _0804EE6C +_0804EE7A: + ldr r3, _0804EE98 + ldr r1, [r3] + movs r4, 0x98 + lsls r4, 1 + adds r2, r1, r4 + movs r0, 0 + str r0, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, [r3] + movs r0, 0x9E + lsls r0, 1 + adds r1, r0 + b _0804F0AE + .align 2, 0 +_0804EE98: .4byte 0x03004854 +_0804EE9C: .4byte gUnknown_082162EC +_0804EEA0: + mov r1, r8 + ldr r2, [r1] + movs r3, 0x98 + lsls r3, 1 + adds r1, r2, r3 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bgt _0804EEB6 + b _0804F0CE +_0804EEB6: + movs r4, 0x9E + lsls r4, 1 + adds r0, r2, r4 + adds r1, r2, 0 + adds r1, 0x88 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcc _0804EF00 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + mov r0, r8 + ldr r2, [r0] + ldr r3, _0804EEF4 + ldr r1, _0804EEF8 + adds r0, r2, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r3 + ldr r3, _0804EEFC + adds r1, r3, 0 + ldrh r0, [r0] + adds r1, r0 + adds r2, 0x54 + strh r1, [r2] + b _0804EF06 + .align 2, 0 +_0804EEF4: .4byte gUnknown_082162F8 +_0804EEF8: .4byte gUnknown_08216300 +_0804EEFC: .4byte 0xffffa800 +_0804EF00: + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] +_0804EF06: + mov r4, r8 + ldr r0, [r4] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _0804F0CE +_0804EF16: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0804EF22 + b _0804F0CE +_0804EF22: + ldr r2, _0804EF30 + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + b _0804EFBC + .align 2, 0 +_0804EF30: .4byte 0x03004854 +_0804EF34: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 3 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + mov r4, r8 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x54 + movs r3, 0x80 + lsls r3, 2 + adds r0, r3, 0 + ldrh r4, [r1] + adds r0, r4 + strh r0, [r1] + movs r0, 0xA1 + lsls r0, 1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _0804EFB8 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + mov r1, r8 + ldr r3, [r1] + movs r2, 0xA1 + lsls r2, 1 + adds r1, r3, r2 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r1] + ldr r2, _0804EFC8 + ldr r1, _0804EFCC + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + adds r0, r3, 0 + adds r0, 0x54 + strh r1, [r0] + ldr r1, _0804EFD0 + ldr r4, _0804EFD4 + adds r0, r4, 0 + strh r0, [r1] + movs r0, 0x98 + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0 + str r0, [r1] + bl sub_804F238 + bl BuyMenuDrawFieldObjects +_0804EFB8: + mov r1, r8 + ldr r0, [r1] +_0804EFBC: + movs r2, 0xB4 + lsls r2, 1 + adds r0, r2 + bl sub_8051414 + b _0804F0CE + .align 2, 0 +_0804EFC8: .4byte gUnknown_082162F8 +_0804EFCC: .4byte gUnknown_08216300 +_0804EFD0: .4byte 0x0400000c +_0804EFD4: .4byte 0x00004882 +_0804EFD8: + bl sub_8051B8C + lsls r0, 24 + cmp r0, 0 + beq _0804EFF6 + ldr r0, _0804F008 + ldr r1, [r0] + movs r3, 0x98 + lsls r3, 1 + adds r2, r1, r3 + movs r0, 0 + str r0, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804EFF6: + ldr r0, _0804F008 + ldr r0, [r0] + movs r4, 0xB4 + lsls r4, 1 + adds r0, r4 + bl sub_8051414 + b _0804F0CE + .align 2, 0 +_0804F008: .4byte 0x03004854 +_0804F00C: + ldr r0, _0804F01C + movs r2, 0x10 + negs r2, r2 + movs r1, 0x78 + movs r3, 0x3 + bl CreateSprite + b _0804F0AA + .align 2, 0 +_0804F01C: .4byte gSpriteTemplate_8216548 +_0804F020: + mov r0, r8 + b _0804F0AC +_0804F024: + bl sub_80084A4 + b _0804F0AA +_0804F02A: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _0804F0CE + bl sub_8007E24 + b _0804F0AA +_0804F03A: + mov r1, r8 + ldr r3, [r1] + adds r2, r3, 0 + adds r2, 0x56 + movs r1, 0 + movs r0, 0x80 + strh r0, [r2] + movs r2, 0x96 + lsls r2, 1 + adds r0, r3, r2 + str r1, [r0] + ldr r0, _0804F07C + bl SetMainCallback2 + bl current_map_music_get + lsls r0, 16 + lsrs r0, 16 + ldr r4, _0804F080 + cmp r0, r4 + beq _0804F074 + bl current_map_music_get + mov r3, r8 + ldr r1, [r3] + movs r2, 0xBC + lsls r2, 1 + adds r1, r2 + strh r0, [r1] +_0804F074: + adds r0, r4, 0 + bl sub_8075474 + b _0804F0CE + .align 2, 0 +_0804F07C: .4byte sub_80501FC +_0804F080: .4byte 0x00000193 +_0804F084: + movs r0, 0 + movs r1, 0xD + movs r2, 0x1D + movs r3, 0x13 + bl DrawDefaultWindow + ldr r0, _0804F09C + movs r1, 0x1 + movs r2, 0xF + bl AddTextPrinterWithCallbackForMessage + b _0804F0AA + .align 2, 0 +_0804F09C: .4byte gUnknown_0842D2D9 +_0804F0A0: + bl sub_8072080 + lsls r0, 24 + cmp r0, 0 + beq _0804F0CE +_0804F0AA: + ldr r0, _0804F0B8 +_0804F0AC: + ldr r1, [r0] +_0804F0AE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804F0CE + .align 2, 0 +_0804F0B8: .4byte 0x03004854 +_0804F0BC: + ldr r0, _0804F0EC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804F0CE + ldr r0, _0804F0F0 + bl SetMainCallback2 +_0804F0CE: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F0EC: .4byte 0x0202f388 +_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_804E9F8 + + thumb_func_start sub_804F0F4 +sub_804F0F4: @ 804F0F4 + push {r4,lr} + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0804F158 + bl SetVBlankCallback + ldr r4, _0804F15C + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl sub_8071C4C + ldr r1, _0804F160 + ldr r2, _0804F164 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804F168 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x4E + movs r1, 0 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r1, [r0] + movs r3, 0xA2 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804F158: .4byte sub_804E2BC +_0804F15C: .4byte gWindowConfig_81E6F68 +_0804F160: .4byte 0x03002b74 +_0804F164: .4byte 0x00004422 +_0804F168: .4byte 0x03004854 + thumb_func_end sub_804F0F4 + + thumb_func_start task_tutorial_oak_boy_girl +task_tutorial_oak_boy_girl: @ 804F16C + push {lr} + lsls r0, 16 + lsls r1, 24 + lsrs r0, 24 + adds r2, r0, 0 + adds r2, 0x18 + ldr r0, _0804F1A8 + ldr r0, [r0] + lsrs r1, 23 + adds r0, 0xA2 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0804F1AC + adds r0, r1 + ldrb r1, [r0] + cmp r2, r1 + bcc _0804F1B4 + adds r0, r1, 0 + adds r0, 0x30 + cmp r2, r0 + bcs _0804F1B4 + subs r0, 0x1C + cmp r2, r0 + bcc _0804F1B0 + adds r0, 0x8 + cmp r2, r0 + bcs _0804F1B0 + movs r0, 0x2 + b _0804F1B6 + .align 2, 0 +_0804F1A8: .4byte 0x03004854 +_0804F1AC: .4byte gUnknown_08216303 +_0804F1B0: + movs r0, 0x1 + b _0804F1B6 +_0804F1B4: + movs r0, 0 +_0804F1B6: + pop {r1} + bx r1 + thumb_func_end task_tutorial_oak_boy_girl + + thumb_func_start sub_804F1BC +sub_804F1BC: @ 804F1BC + push {r4-r7,lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + movs r4, 0 + cmp r0, 0xAF + bne _0804F1EE + movs r3, 0 + subs r5, r1, 0x1 + adds r2, 0x9 +_0804F1D2: + adds r0, r2, r4 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _0804F1E0 + adds r4, r3, 0 +_0804F1E0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _0804F1D2 + adds r0, r4, 0x5 + b _0804F204 +_0804F1EE: + subs r0, 0x85 + lsls r0, 16 + lsrs r4, r0, 16 + subs r5, r1, 0x1 + cmp r4, 0x4 + bls _0804F208 + adds r0, r4, 0 + movs r1, 0x5 + bl __umodsi3 + adds r0, 0x5 +_0804F204: + lsls r0, 16 + lsrs r4, r0, 16 +_0804F208: + movs r3, 0 + cmp r3, r5 + bge _0804F22E + ldr r7, _0804F234 + lsls r0, r4, 1 + adds r6, r0, r4 +_0804F214: + adds r4, r3, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + adds r1, r3, r6 + adds r1, r7 + ldrb r1, [r1] + adds r1, 0x85 + bl sub_80516C4 + lsls r4, 16 + lsrs r3, r4, 16 + cmp r3, r5 + blt _0804F214 +_0804F22E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F234: .4byte gUnknown_082165BC + thumb_func_end sub_804F1BC + + thumb_func_start sub_804F238 +sub_804F238: @ 804F238 + push {r4-r7,lr} + movs r4, 0 + ldr r7, _0804F2A0 + movs r6, 0xFF + ldr r5, _0804F2A4 +_0804F242: + ldr r3, [r7] + lsls r2, r4, 1 + adds r0, r3, 0 + adds r0, 0xA2 + adds r0, r2 + strh r6, [r0] + adds r1, r3, 0 + adds r1, 0x9A + adds r1, r2 + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 2 + adds r0, r4, r0 + adds r0, r5 + ldrb r0, [r0] + strh r0, [r1] + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F242 + movs r3, 0 + ldr r7, _0804F2A0 +_0804F270: + movs r4, 0 + adds r6, r3, 0x1 + lsls r5, r3, 1 +_0804F276: + ldr r2, [r7] + lsls r0, r4, 1 + adds r1, r2, 0 + adds r1, 0x9A + adds r1, r0 + ldrh r0, [r1] + cmp r0, r3 + bne _0804F28E + adds r0, r2, 0 + adds r0, 0xA2 + adds r0, r5 + strh r4, [r0] +_0804F28E: + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F276 + adds r3, r6, 0 + cmp r3, 0x3 + ble _0804F270 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F2A0: .4byte 0x03004854 +_0804F2A4: .4byte gUnknown_082162EC + thumb_func_end sub_804F238 + + thumb_func_start BuyMenuDrawFieldObjects +BuyMenuDrawFieldObjects: @ 804F2A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r7, _0804F360 + ldr r0, _0804F364 + mov r8, r0 +_0804F2B6: + ldr r2, [r7] + lsls r4, r6, 1 + adds r0, r2, 0 + adds r0, 0x9A + adds r3, r0, r4 + ldrh r0, [r3] + cmp r0, 0xFF + beq _0804F34A + ldr r5, _0804F368 + adds r1, r2, 0 + adds r1, 0x5C + ldrh r3, [r3] + adds r1, r3 + adds r0, r2, 0 + adds r0, 0x60 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [r7] + adds r1, r0, 0 + adds r1, 0x9A + adds r1, r4 + adds r0, 0x5C + ldrh r1, [r1] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804F36C + adds r0, r1 + lsls r1, r6, 24 + lsrs r1, 24 + bl StartSpriteAnim + bl GetMultiplayerId + lsls r0, 24 + ldr r1, [r7] + adds r1, 0x9A + adds r1, r4 + lsrs r0, 24 + ldrh r1, [r1] + cmp r0, r1 + bne _0804F31A + adds r0, r5, 0 + ldr r1, _0804F370 + bl StringCopy + adds r5, r0, 0 +_0804F31A: + ldr r0, [r7] + adds r0, 0x9A + adds r0, r4 + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _0804F374 + adds r1, r0 + adds r0, r5, 0 + bl StringCopy + mov r0, r8 + ldrb r1, [r0] + lsls r1, 3 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0x1] + lsls r2, 3 + ldr r0, _0804F368 + movs r3, 0x1 + bl sub_80729D8 +_0804F34A: + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0804F2B6 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F360: .4byte 0x03004854 +_0804F364: .4byte gUnknown_082162D4 +_0804F368: .4byte 0x020231cc +_0804F36C: .4byte 0x02020004 +_0804F370: .4byte gUnknown_082162C4 +_0804F374: .4byte 0x03002978 + thumb_func_end BuyMenuDrawFieldObjects + + thumb_func_start sub_804F378 +sub_804F378: @ 804F378 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r1, _0804F398 + ldr r0, [r1] + ldrb r0, [r0] + mov r8, r1 + cmp r0, 0x15 + bls _0804F38E + b _0804F7E6 +_0804F38E: + lsls r0, 2 + ldr r1, _0804F39C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804F398: .4byte 0x03004854 +_0804F39C: .4byte _0804F3A0 + .align 2, 0 +_0804F3A0: + .4byte _0804F3F8 + .4byte _0804F474 + .4byte _0804F494 + .4byte _0804F4EC + .4byte _0804F518 + .4byte _0804F7E6 + .4byte _0804F7E6 + .4byte _0804F7E6 + .4byte _0804F54C + .4byte _0804F7E6 + .4byte _0804F7E6 + .4byte _0804F578 + .4byte _0804F5C8 + .4byte _0804F636 + .4byte _0804F650 + .4byte _0804F6F8 + .4byte _0804F720 + .4byte _0804F7E6 + .4byte _0804F73C + .4byte _0804F742 + .4byte _0804F748 + .4byte _0804F754 +_0804F3F8: + bl sub_804F0F4 + ldr r4, _0804F46C + ldrh r1, [r4] + movs r0, 0 + bl sub_80516C4 + ldr r5, _0804F470 + ldr r0, [r5] + movs r6, 0xBE + lsls r6, 1 + adds r0, r6 + ldrh r1, [r4] + bl sub_804E844 + ldrh r0, [r4] + ldr r2, [r5] + adds r1, r2, 0 + adds r1, 0x88 + ldrb r1, [r1] + adds r2, r6 + bl sub_804F1BC + movs r4, 0 + movs r6, 0 + mov r8, r5 + movs r7, 0xA6 + lsls r7, 1 +_0804F430: + ldr r0, [r5] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + strh r6, [r0] + adds r3, r4, 0x1 + adds r1, r4 + lsls r1, 1 + movs r2, 0x2 +_0804F442: + ldr r0, [r5] + adds r0, r7 + adds r0, r1 + strh r6, [r0] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0804F442 + adds r4, r3, 0 + cmp r4, 0x3 + ble _0804F430 + mov r0, r8 + ldr r3, [r0] + adds r1, r3, 0 + adds r1, 0x7C + movs r2, 0 + movs r0, 0 + strh r0, [r1] + strb r2, [r3, 0x1] + b _0804F7E6 + .align 2, 0 +_0804F46C: .4byte 0x0203855e +_0804F470: .4byte 0x03004854 +_0804F474: + bl sub_804E2EC + lsls r0, 24 + cmp r0, 0 + bne _0804F480 + b _0804F7E6 +_0804F480: + ldr r0, _0804F490 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_8051474 + b _0804F7E6 + .align 2, 0 +_0804F490: .4byte 0x03004854 +_0804F494: + movs r4, 0 + ldr r5, _0804F4DC + ldr r6, _0804F4E0 +_0804F49A: + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + ldr r0, _0804F4E4 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + adds r1, 0x60 + adds r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x60 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804F4E8 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F49A + ldr r0, _0804F4E0 + ldr r1, [r0] + b _0804F74C + .align 2, 0 +_0804F4DC: .4byte gUnknown_082162E4 +_0804F4E0: .4byte 0x03004854 +_0804F4E4: .4byte gSpriteTemplate_82163F4 +_0804F4E8: .4byte 0x02020004 +_0804F4EC: + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _0804F514 + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + str r4, [r0] + b _0804F7E6 + .align 2, 0 +_0804F514: .4byte 0x03004854 +_0804F518: + mov r2, r8 + ldr r1, [r2] + movs r3, 0x98 + lsls r3, 1 + adds r1, r3 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x2 + bne _0804F530 + bl sub_804E4FC +_0804F530: + ldr r0, _0804F548 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804F53E + b _0804F7E6 +_0804F53E: + mov r5, r8 + ldr r1, [r5] + movs r0, 0x8 + strb r0, [r1] + b _0804F7E6 + .align 2, 0 +_0804F548: .4byte 0x0202f388 +_0804F54C: + mov r0, r8 + ldr r1, [r0] + movs r2, 0 + movs r0, 0xB + strb r0, [r1] + mov r1, r8 + ldr r0, [r1] + movs r3, 0x9E + lsls r3, 1 + adds r0, r3 + strb r2, [r0] + b _0804F7E6 +_0804F564: + lsls r1, 1 + adds r0, r3, 0 + adds r0, 0x80 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_804E7C0 + b _0804F5A2 +_0804F578: + movs r4, 0 + ldr r2, _0804F5C0 + ldr r0, _0804F5C4 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 2 + movs r5, 0x9E + lsls r5, 1 + adds r1, r3, r5 + ldrb r1, [r1] + adds r0, r2 +_0804F594: + ldrb r2, [r0] + cmp r1, r2 + beq _0804F564 + adds r0, 0x1 + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F594 +_0804F5A2: + ldr r3, _0804F5C4 + ldr r1, [r3] + movs r5, 0x98 + lsls r5, 1 + adds r2, r1, r5 + movs r0, 0 + str r0, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, [r3] + movs r0, 0x9E + lsls r0, 1 + adds r1, r0 + b _0804F74C + .align 2, 0 +_0804F5C0: .4byte gUnknown_082162EC +_0804F5C4: .4byte 0x03004854 +_0804F5C8: + mov r1, r8 + ldr r3, [r1] + movs r2, 0x98 + lsls r2, 1 + adds r1, r3, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bgt _0804F5DE + b _0804F7E6 +_0804F5DE: + movs r5, 0x9E + lsls r5, 1 + adds r0, r3, r5 + adds r4, r3, 0 + adds r4, 0x88 + ldrb r0, [r0] + ldrb r1, [r4] + cmp r0, r1 + bcc _0804F620 + ldr r2, _0804F614 + ldr r1, _0804F618 + ldrb r0, [r4] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldr r2, _0804F61C + adds r1, r2, 0 + ldrh r0, [r0] + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x54 + strh r1, [r0] + ldrb r0, [r3] + adds r0, 0x1 + b _0804F624 + .align 2, 0 +_0804F614: .4byte gUnknown_082162F8 +_0804F618: .4byte gUnknown_08216300 +_0804F61C: .4byte 0xffffa800 +_0804F620: + ldrb r0, [r3] + subs r0, 0x1 +_0804F624: + strb r0, [r3] + mov r3, r8 + ldr r0, [r3] + movs r5, 0x98 + lsls r5, 1 + adds r0, r5 + movs r1, 0 + str r1, [r0] + b _0804F7E6 +_0804F636: + mov r1, r8 + ldr r0, [r1] + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + bl sub_804F238 + movs r0, 0x2B + bl audio_play + mov r2, r8 + ldr r0, [r2] + b _0804F710 +_0804F650: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r5, 0x80 + lsls r5, 3 + adds r1, r5, 0 + orrs r0, r1 + strh r0, [r2] + mov r0, r8 + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x54 + movs r3, 0x80 + lsls r3, 2 + adds r0, r3, 0 + ldrh r5, [r1] + adds r0, r5 + strh r0, [r1] + movs r0, 0xA1 + lsls r0, 1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _0804F6D6 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + mov r1, r8 + ldr r3, [r1] + movs r2, 0xA1 + lsls r2, 1 + adds r1, r3, r2 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r1] + ldr r2, _0804F6E8 + ldr r1, _0804F6EC + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + adds r0, r3, 0 + adds r0, 0x54 + strh r1, [r0] + ldr r1, _0804F6F0 + ldr r5, _0804F6F4 + adds r0, r5, 0 + strh r0, [r1] + movs r0, 0x98 + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0 + str r0, [r1] + movs r0, 0x34 + bl audio_play + bl BuyMenuDrawFieldObjects +_0804F6D6: + mov r1, r8 + ldr r0, [r1] + movs r2, 0xB4 + lsls r2, 1 + adds r0, r2 + bl sub_8051414 + b _0804F7E6 + .align 2, 0 +_0804F6E8: .4byte gUnknown_082162F8 +_0804F6EC: .4byte gUnknown_08216300 +_0804F6F0: .4byte 0x0400000c +_0804F6F4: .4byte 0x00004882 +_0804F6F8: + bl sub_8051B8C + lsls r0, 24 + cmp r0, 0 + beq _0804F70C + ldr r0, _0804F71C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804F70C: + ldr r0, _0804F71C + ldr r0, [r0] +_0804F710: + movs r3, 0xB4 + lsls r3, 1 + adds r0, r3 + bl sub_8051414 + b _0804F7E6 + .align 2, 0 +_0804F71C: .4byte 0x03004854 +_0804F720: + ldr r0, _0804F734 + movs r2, 0x10 + negs r2, r2 + movs r1, 0x78 + movs r3, 0x3 + bl CreateSprite + ldr r0, _0804F738 + ldr r1, [r0] + b _0804F74C + .align 2, 0 +_0804F734: .4byte gSpriteTemplate_8216548 +_0804F738: .4byte 0x03004854 +_0804F73C: + mov r5, r8 + ldr r1, [r5] + b _0804F74C +_0804F742: + mov r0, r8 + ldr r1, [r0] + b _0804F74C +_0804F748: + mov r2, r8 + ldr r1, [r2] +_0804F74C: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804F7E6 +_0804F754: + bl sub_804F81C + ldr r3, _0804F804 + ldr r4, [r3] + adds r5, r4, 0 + adds r5, 0x56 + movs r2, 0 + movs r1, 0 + movs r0, 0x80 + strh r0, [r5] + movs r5, 0x96 + lsls r5, 1 + adds r0, r4, r5 + str r1, [r0] + ldr r1, _0804F808 + adds r0, r4, r1 + strb r2, [r0] + ldr r0, [r3] + adds r0, 0x7E + strb r2, [r0] + ldr r0, _0804F80C + bl SetMainCallback2 + movs r4, 0 + ldr r0, _0804F810 + ldrh r0, [r0] + cmp r4, r0 + bge _0804F7B8 + movs r5, 0xA0 + lsls r5, 20 + ldr r6, _0804F814 +_0804F792: + ldm r6!, {r0} + lsrs r1, r5, 24 + bl CreateTask + ldr r1, _0804F804 + ldr r1, [r1] + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + adds r1, r4 + strb r0, [r1] + movs r3, 0x80 + lsls r3, 17 + adds r5, r3 + adds r4, 0x1 + ldr r0, _0804F810 + ldrh r0, [r0] + cmp r4, r0 + blt _0804F792 +_0804F7B8: + bl current_map_music_get + lsls r0, 16 + lsrs r0, 16 + ldr r4, _0804F818 + cmp r0, r4 + beq _0804F7D6 + bl current_map_music_get + ldr r1, _0804F804 + ldr r1, [r1] + movs r5, 0xBC + lsls r5, 1 + adds r1, r5 + strh r0, [r1] +_0804F7D6: + adds r0, r4, 0 + bl sub_8075474 + movs r0, 0x35 + bl audio_play + bl sub_804E290 +_0804F7E6: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F804: .4byte 0x03004854 +_0804F808: .4byte 0x0000014b +_0804F80C: .4byte sub_80501FC +_0804F810: .4byte 0x0202e8cc +_0804F814: .4byte gUnknown_08216308 +_0804F818: .4byte 0x00000193 + thumb_func_end sub_804F378 + + thumb_func_start sub_804F81C +sub_804F81C: @ 804F81C + push {lr} + ldr r3, _0804F83C + movs r0, 0 + ldr r1, _0804F840 + movs r2, 0x3 +_0804F826: + strh r0, [r3] + strh r0, [r3, 0x4] + strh r0, [r1] + strh r0, [r1, 0x10] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0804F826 + pop {r0} + bx r0 + .align 2, 0 +_0804F83C: .4byte 0x03002f90 +_0804F840: .4byte 0x03002a20 + thumb_func_end sub_804F81C + + thumb_func_start sub_804F844 +sub_804F844: @ 804F844 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0804F884 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r4, 0xA + ldrsh r1, [r2, r4] + cmp r0, r1 + ble _0804F87C + ldr r0, _0804F888 + movs r4, 0xC + ldrsh r1, [r2, r4] + lsls r1, 1 + adds r0, 0x10 + adds r1, r0 + ldr r0, _0804F88C + strh r0, [r1] + adds r0, r3, 0 + bl DestroyTask +_0804F87C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804F884: .4byte 0x03004b20 +_0804F888: .4byte 0x03002a20 +_0804F88C: .4byte 0x00002345 + thumb_func_end sub_804F844 + + thumb_func_start sub_804F890 +sub_804F890: @ 804F890 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0804F8C0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0804F8C4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + strh r5, [r1, 0xC] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804F8C0: .4byte sub_804F844 +_0804F8C4: .4byte 0x03004b20 + thumb_func_end sub_804F890 + + thumb_func_start sub_804F8C8 +sub_804F8C8: @ 804F8C8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _0804F934 + ldr r0, [r4] + adds r0, 0x54 + ldrh r0, [r0] + movs r1, 0x1 + bl task_tutorial_oak_boy_girl + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _0804F8E6 + b _0804F9DC +_0804F8E6: + ldr r2, _0804F938 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r6, r1, 0 + cmp r0, 0 + beq _0804F8FC + b _0804F9EA +_0804F8FC: + ldr r0, [r4] + ldr r1, _0804F93C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0804F9BE + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0804F940 + bl __udivsi3 + lsls r0, 24 + lsrs r1, r0, 24 + adds r3, r1, 0 + ldr r0, [r4] + adds r0, 0x56 + movs r4, 0 + ldrsh r2, [r0, r4] + ldr r0, _0804F944 + cmp r2, r0 + bgt _0804F964 + cmp r1, 0x4B + bls _0804F950 + ldr r1, _0804F948 + ldr r0, _0804F94C + b _0804F954 + .align 2, 0 +_0804F934: .4byte 0x03004854 +_0804F938: .4byte 0x03004b20 +_0804F93C: .4byte 0x0000014b +_0804F940: .4byte 0x0000028f +_0804F944: .4byte 0x000001f3 +_0804F948: .4byte 0x03002a20 +_0804F94C: .4byte 0x00004523 +_0804F950: + ldr r1, _0804F95C + ldr r0, _0804F960 +_0804F954: + strh r0, [r1, 0x12] + ldr r0, _0804F960 + b _0804F9C2 + .align 2, 0 +_0804F95C: .4byte 0x03002a20 +_0804F960: .4byte 0x00005432 +_0804F964: + ldr r0, _0804F980 + cmp r2, r0 + bgt _0804F992 + cmp r1, 0x50 + bhi _0804F9BE + adds r0, r1, 0 + subs r0, 0x15 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bhi _0804F98C + ldr r1, _0804F984 + ldr r0, _0804F988 + b _0804F9C2 + .align 2, 0 +_0804F980: .4byte 0x000005db +_0804F984: .4byte 0x03002a20 +_0804F988: .4byte 0x00005432 +_0804F98C: + cmp r1, 0x9 + bhi _0804F9C4 + b _0804F9B4 +_0804F992: + cmp r1, 0x5A + bhi _0804F9BE + adds r0, r1, 0 + subs r0, 0x47 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _0804F9B0 + ldr r1, _0804F9A8 + ldr r0, _0804F9AC + b _0804F9C2 + .align 2, 0 +_0804F9A8: .4byte 0x03002a20 +_0804F9AC: .4byte 0x00005432 +_0804F9B0: + cmp r3, 0x1D + bhi _0804F9C4 +_0804F9B4: + movs r0, 0x1 + movs r1, 0x5 + bl sub_804F890 + b _0804F9C4 +_0804F9BE: + ldr r1, _0804F9D0 + ldr r0, _0804F9D4 +_0804F9C2: + strh r0, [r1, 0x12] +_0804F9C4: + ldr r0, _0804F9D8 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _0804F9E8 + .align 2, 0 +_0804F9D0: .4byte 0x03002a20 +_0804F9D4: .4byte 0x00004523 +_0804F9D8: .4byte 0x03004b20 +_0804F9DC: + ldr r0, _0804F9F0 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r0, 0 +_0804F9E8: + strh r0, [r1, 0x8] +_0804F9EA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804F9F0: .4byte 0x03004b20 + thumb_func_end sub_804F8C8 + + thumb_func_start sub_804F9F4 +sub_804F9F4: @ 804F9F4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r6, _0804FA78 + ldr r3, [r6] + adds r0, r3, 0 + adds r0, 0x54 + ldrh r0, [r0] + movs r1, 0xC0 + lsls r1, 5 + adds r0, r1 + ldr r1, _0804FA7C + ands r0, r1 + adds r1, r3, 0 + adds r1, 0xA6 + ldrb r1, [r1] + lsrs r2, r0, 8 + ldr r0, _0804FA80 + adds r1, r0 + ldrb r1, [r1] + adds r0, r1, 0 + adds r0, 0x14 + cmp r2, r0 + bls _0804FB04 + adds r0, 0x14 + cmp r2, r0 + bcs _0804FB04 + ldr r2, _0804FA84 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + adds r2, r0, r2 + movs r5, 0x8 + ldrsh r0, [r2, r5] + adds r5, r1, 0 + cmp r0, 0 + bne _0804FB12 + ldr r1, _0804FA88 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0804FAF0 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0804FA8C + bl __udivsi3 + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + ldr r0, [r6] + adds r0, 0x56 + movs r6, 0 + ldrsh r1, [r0, r6] + ldr r0, _0804FA90 + cmp r1, r0 + bgt _0804FAAC + cmp r2, 0x42 + bls _0804FA9C + ldr r1, _0804FA94 + ldr r0, _0804FA98 + strh r0, [r1, 0x14] + b _0804FAD4 + .align 2, 0 +_0804FA78: .4byte 0x03004854 +_0804FA7C: .4byte 0x0000ffff +_0804FA80: .4byte gUnknown_08216303 +_0804FA84: .4byte 0x03004b20 +_0804FA88: .4byte 0x0000014b +_0804FA8C: .4byte 0x0000028f +_0804FA90: .4byte 0x000001f3 +_0804FA94: .4byte 0x03002a20 +_0804FA98: .4byte 0x00004523 +_0804FA9C: + ldr r1, _0804FAA4 + ldr r0, _0804FAA8 + strh r0, [r1, 0x14] + b _0804FAD4 + .align 2, 0 +_0804FAA4: .4byte 0x03002a20 +_0804FAA8: .4byte 0x00005432 +_0804FAAC: + cmp r2, 0x41 + bls _0804FAB6 + ldr r1, _0804FAE0 + ldr r0, _0804FAE4 + strh r0, [r1, 0x14] +_0804FAB6: + adds r0, r2, 0 + subs r0, 0x29 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x18 + bhi _0804FAC8 + ldr r1, _0804FAE0 + ldr r0, _0804FAE8 + strh r0, [r1, 0x14] +_0804FAC8: + cmp r3, 0x9 + bhi _0804FAD4 + movs r0, 0x2 + movs r1, 0x5 + bl sub_804F890 +_0804FAD4: + ldr r0, _0804FAEC + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _0804FB10 + .align 2, 0 +_0804FAE0: .4byte 0x03002a20 +_0804FAE4: .4byte 0x00004523 +_0804FAE8: .4byte 0x00005432 +_0804FAEC: .4byte 0x03004b20 +_0804FAF0: + ldr r0, _0804FAFC + ldr r1, _0804FB00 + strh r1, [r0, 0x14] + movs r0, 0x1 + strh r0, [r2, 0x8] + b _0804FB12 + .align 2, 0 +_0804FAFC: .4byte 0x03002a20 +_0804FB00: .4byte 0x00004523 +_0804FB04: + ldr r0, _0804FB18 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0 +_0804FB10: + strh r0, [r1, 0x8] +_0804FB12: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804FB18: .4byte 0x03004b20 + thumb_func_end sub_804F9F4 + + thumb_func_start sub_804FB1C +sub_804FB1C: @ 804FB1C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _0804FB9C + ldr r3, [r5] + adds r0, r3, 0 + adds r0, 0x54 + ldrh r0, [r0] + movs r1, 0xC0 + lsls r1, 5 + adds r0, r1 + ldr r1, _0804FBA0 + ands r0, r1 + adds r1, r3, 0 + adds r1, 0xA8 + ldrb r1, [r1] + lsrs r2, r0, 8 + ldr r0, _0804FBA4 + adds r1, r0 + ldrb r1, [r1] + adds r0, r1, 0 + adds r0, 0x14 + cmp r2, r0 + bls _0804FC30 + adds r0, 0x14 + cmp r2, r0 + bcs _0804FC30 + ldr r2, _0804FBA8 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + adds r2, r0, r2 + movs r6, 0x8 + ldrsh r0, [r2, r6] + adds r6, r1, 0 + cmp r0, 0 + bne _0804FC3E + ldr r1, _0804FBAC + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0804FC1C + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0804FBB0 + bl __udivsi3 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, [r5] + adds r0, 0x56 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r0, _0804FBB4 + cmp r1, r0 + bgt _0804FBD0 + cmp r2, 0x58 + bls _0804FBC0 + ldr r1, _0804FBB8 + ldr r0, _0804FBBC + strh r0, [r1, 0x16] + b _0804FC02 + .align 2, 0 +_0804FB9C: .4byte 0x03004854 +_0804FBA0: .4byte 0x0000ffff +_0804FBA4: .4byte gUnknown_08216303 +_0804FBA8: .4byte 0x03004b20 +_0804FBAC: .4byte 0x0000014b +_0804FBB0: .4byte 0x0000028f +_0804FBB4: .4byte 0x000001f3 +_0804FBB8: .4byte 0x03002a20 +_0804FBBC: .4byte 0x00004523 +_0804FBC0: + ldr r1, _0804FBC8 + ldr r0, _0804FBCC + strh r0, [r1, 0x16] + b _0804FC02 + .align 2, 0 +_0804FBC8: .4byte 0x03002a20 +_0804FBCC: .4byte 0x00005432 +_0804FBD0: + cmp r2, 0x3C + bls _0804FBE4 + ldr r1, _0804FBDC + ldr r0, _0804FBE0 + b _0804FBF4 + .align 2, 0 +_0804FBDC: .4byte 0x03002a20 +_0804FBE0: .4byte 0x00004523 +_0804FBE4: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _0804FBF6 + ldr r1, _0804FC10 + ldr r0, _0804FC14 +_0804FBF4: + strh r0, [r1, 0x16] +_0804FBF6: + cmp r2, 0x4 + bhi _0804FC02 + movs r0, 0x3 + movs r1, 0x5 + bl sub_804F890 +_0804FC02: + ldr r0, _0804FC18 + adds r1, r6, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _0804FC3C + .align 2, 0 +_0804FC10: .4byte 0x03002a20 +_0804FC14: .4byte 0x00005432 +_0804FC18: .4byte 0x03004b20 +_0804FC1C: + ldr r0, _0804FC28 + ldr r1, _0804FC2C + strh r1, [r0, 0x16] + movs r0, 0x1 + strh r0, [r2, 0x8] + b _0804FC3E + .align 2, 0 +_0804FC28: .4byte 0x03002a20 +_0804FC2C: .4byte 0x00004523 +_0804FC30: + ldr r0, _0804FC44 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0 +_0804FC3C: + strh r0, [r1, 0x8] +_0804FC3E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804FC44: .4byte 0x03004b20 + thumb_func_end sub_804FB1C + + thumb_func_start sub_804FC48 +sub_804FC48: @ 804FC48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r7, r0, 16 + mov r8, r7 + lsls r1, 24 + ldr r0, _0804FCBC + ldr r4, _0804FCC0 + lsrs r1, 23 + adds r2, r1, r4 + ldrb r6, [r2] + ldr r5, _0804FCC4 + adds r2, r1, r5 + movs r3, 0 + ldrsb r3, [r2, r3] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 1 + subs r6, r2 + adds r4, 0x1 + adds r4, r1, r4 + ldrb r2, [r4] + adds r5, 0x1 + adds r1, r5 + movs r3, 0 + ldrsb r3, [r1, r3] + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 1 + subs r2, r1 + adds r1, r6, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + adds r2, r1, 0 + ldr r0, _0804FCC8 + cmp r7, r0 + bne _0804FCD4 + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + ldr r5, _0804FCCC + adds r0, r4, r5 + movs r1, 0x2 + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _0804FCD0 + str r0, [r4] + movs r0, 0x28 + bl audio_play + b _0804FD18 + .align 2, 0 +_0804FCBC: .4byte gSpriteTemplate_821645C +_0804FCC0: .4byte gUnknown_082162E4 +_0804FCC4: .4byte gUnknown_082162CC +_0804FCC8: .4byte 0x00004523 +_0804FCCC: .4byte 0x02020004 +_0804FCD0: .4byte sub_8051684 +_0804FCD4: + ldr r0, _0804FCF4 + cmp r7, r0 + bne _0804FCFC + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804FCF8 + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + movs r0, 0x1F + bl audio_play + b _0804FD18 + .align 2, 0 +_0804FCF4: .4byte 0x00005432 +_0804FCF8: .4byte 0x02020004 +_0804FCFC: + ldr r0, _0804FD28 + cmp r8, r0 + bne _0804FD18 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + ldr r1, _0804FD2C + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x20 + bl audio_play +_0804FD18: + bl sub_805156C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FD28: .4byte 0x00002345 +_0804FD2C: .4byte 0x02020004 + thumb_func_end sub_804FC48 + + thumb_func_start sub_804FD30 +sub_804FD30: @ 804FD30 + push {r4-r7,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl sub_804E290 + ldr r0, _0804FD50 + cmp r4, r0 + beq _0804FD64 + cmp r4, r0 + bgt _0804FD58 + ldr r0, _0804FD54 + cmp r4, r0 + beq _0804FE34 + b _0804FE60 + .align 2, 0 +_0804FD50: .4byte 0x00004523 +_0804FD54: .4byte 0x00002345 +_0804FD58: + ldr r0, _0804FD60 + cmp r5, r0 + beq _0804FDFC + b _0804FE60 + .align 2, 0 +_0804FD60: .4byte 0x00005432 +_0804FD64: + ldr r7, _0804FD94 + ldr r4, [r7] + adds r5, r4, 0 + adds r5, 0x56 + ldrh r6, [r5] + movs r0, 0 + ldrsh r1, [r5, r0] + ldr r0, _0804FD98 + cmp r1, r0 + bgt _0804FDA0 + ldr r1, _0804FD9C + adds r0, r4, 0 + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0xC0 + lsls r0, 1 + bl __divsi3 + adds r0, r6, r0 + strh r0, [r5] + b _0804FE60 + .align 2, 0 +_0804FD94: .4byte 0x03004854 +_0804FD98: .4byte 0x000005db +_0804FD9C: .4byte gUnknown_082165DA +_0804FDA0: + ldr r1, _0804FDF8 + adds r0, r4, 0 + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + bl __divsi3 + adds r0, r6, r0 + strh r0, [r5] + movs r1, 0xA2 + lsls r1, 1 + adds r4, r1 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + subs r1, 0xA + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8051AC8 + ldr r0, [r7] + movs r1, 0xA3 + lsls r1, 1 + adds r4, r0, r1 + adds r0, 0x56 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + subs r1, 0xA + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8051AC8 + b _0804FE60 + .align 2, 0 +_0804FDF8: .4byte gUnknown_082165DA +_0804FDFC: + ldr r0, _0804FE28 + ldr r2, [r0] + adds r4, r2, 0 + adds r4, 0x56 + ldrh r5, [r4] + movs r0, 0 + ldrsh r1, [r4, r0] + ldr r0, _0804FE2C + cmp r1, r0 + bgt _0804FE60 + ldr r1, _0804FE30 + adds r0, r2, 0 + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + lsls r0, 1 + bl __divsi3 + adds r0, r5, r0 + b _0804FE5E + .align 2, 0 +_0804FE28: .4byte 0x03004854 +_0804FE2C: .4byte 0x000005db +_0804FE30: .4byte gUnknown_082165DA +_0804FE34: + ldr r0, _0804FE68 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0x56 + ldr r1, _0804FE6C + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + lsls r0, 1 + bl __divsi3 + ldrh r1, [r4] + subs r1, r0 + strh r1, [r4] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + bgt _0804FE60 + movs r0, 0x80 +_0804FE5E: + strh r0, [r4] +_0804FE60: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FE68: .4byte 0x03004854 +_0804FE6C: .4byte gUnknown_082165DA + thumb_func_end sub_804FD30 + + thumb_func_start sub_804FE70 +sub_804FE70: @ 804FE70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _0804FF40 + ldrh r0, [r0] + cmp r0, 0 + beq _0804FEB6 + ldr r3, _0804FF44 + ldrh r0, [r3, 0x4] + ldr r2, _0804FF48 + cmp r0, 0 + beq _0804FE98 + movs r1, 0 + strh r0, [r2, 0x10] + ldr r0, _0804FF4C + strh r0, [r2] + strh r1, [r3, 0x4] +_0804FE98: + ldr r0, _0804FF48 + ldr r3, _0804FF4C + adds r1, r2, 0x2 + adds r2, r0, 0 + adds r2, 0x12 + movs r6, 0x2 +_0804FEA4: + ldrh r0, [r2] + cmp r0, 0 + beq _0804FEAC + strh r3, [r1] +_0804FEAC: + adds r1, 0x2 + adds r2, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _0804FEA4 +_0804FEB6: + movs r6, 0 + ldr r7, _0804FF50 + adds r1, r7, 0 + ldr r0, [r1] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + blt _0804FEC8 + b _0805005C +_0804FEC8: + movs r2, 0 + str r2, [sp] + mov r9, r2 + ldr r0, _0804FF48 + adds r0, 0x10 + mov r8, r0 + ldr r1, _0804FF54 + mov r10, r1 +_0804FED8: + ldr r2, [sp] + ldr r1, _0804FF48 + adds r0, r2, r1 + ldrh r1, [r0] + ldr r0, _0804FF4C + cmp r1, r0 + beq _0804FEE8 + b _0805003E +_0804FEE8: + ldr r0, [r7] + adds r0, 0xA2 + adds r0, r2 + ldrh r5, [r0] + mov r2, r8 + ldrh r4, [r2] + ldr r0, _0804FF58 + cmp r4, r0 + bne _0804FF60 + bl sub_804FD30 + ldr r0, [r7] + movs r1, 0x9F + lsls r1, 1 + adds r4, r0, r1 + adds r0, 0x56 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x37 + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + lsls r1, 16 + ldr r0, _0804FF5C + cmp r1, r0 + bls _0804FF26 + movs r0, 0xFA + lsls r0, 2 + strh r0, [r4] +_0804FF26: + lsls r1, r5, 24 + lsrs r1, 24 + ldr r0, _0804FF58 + bl sub_804FC48 + ldr r1, [r7] + movs r0, 0xA6 + lsls r0, 1 + adds r1, r0 + add r1, r9 + ldrh r0, [r1] + adds r0, 0x1 + b _0804FFCA + .align 2, 0 +_0804FF40: .4byte 0x0202e8cc +_0804FF44: .4byte 0x03002f90 +_0804FF48: .4byte 0x03002a20 +_0804FF4C: .4byte 0x00004444 +_0804FF50: .4byte 0x03004854 +_0804FF54: .4byte 0x00005432 +_0804FF58: .4byte 0x00004523 +_0804FF5C: .4byte 0x03e70000 +_0804FF60: + cmp r4, r10 + bne _0804FF9E + mov r0, r10 + bl sub_804FD30 + ldr r0, [r7] + movs r1, 0x9F + lsls r1, 1 + adds r4, r0, r1 + adds r0, 0x56 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x46 + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + lsls r1, r5, 24 + lsrs r1, 24 + mov r0, r10 + bl sub_804FC48 + ldr r1, [r7] + movs r0, 0xA7 + lsls r0, 1 + adds r1, r0 + add r1, r9 + ldrh r0, [r1] + adds r0, 0x1 + b _0804FFCA +_0804FF9E: + ldr r0, _08050018 + cmp r4, r0 + bne _0804FFD6 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_804FC48 + adds r0, r4, 0 + bl sub_804FD30 + ldr r0, [r7] + movs r1, 0xA8 + lsls r1, 1 + adds r0, r1 + mov r2, r9 + adds r1, r0, r2 + ldrh r2, [r1] + ldr r0, _0805001C + cmp r2, r0 + bhi _0804FFCC + adds r0, r2, 0x1 +_0804FFCA: + strh r0, [r1] +_0804FFCC: + mov r0, r8 + ldrh r1, [r0] + ldr r0, _08050018 + cmp r1, r0 + beq _0804FFE4 +_0804FFD6: + mov r1, r8 + ldrh r0, [r1] + ldr r2, _08050020 + cmp r0, r2 + beq _0804FFE4 + cmp r0, r10 + bne _0805003E +_0804FFE4: + ldr r0, _08050024 + ldr r0, [r0] + adds r2, r0, 0 + adds r2, 0x56 + movs r0, 0 + ldrsh r1, [r2, r0] + ldr r0, _08050028 + cmp r1, r0 + ble _08050034 + adds r0, r1, 0 + ldr r2, _0805002C + adds r0, r2 + movs r1, 0x14 + bl __divsi3 + adds r1, r0, 0 + movs r0, 0x80 + lsls r0, 1 + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _08050030 + bl m4aMPlayTempoControl + b _0805003E + .align 2, 0 +_08050018: .4byte 0x00002345 +_0805001C: .4byte 0x000003e6 +_08050020: .4byte 0x00004523 +_08050024: .4byte 0x03004854 +_08050028: .4byte 0x000005dc +_0805002C: .4byte 0xfffffd12 +_08050030: .4byte 0x03007380 +_08050034: + ldr r0, _08050098 + movs r1, 0x80 + lsls r1, 1 + bl m4aMPlayTempoControl +_0805003E: + ldr r1, [sp] + adds r1, 0x2 + str r1, [sp] + movs r2, 0x6 + add r9, r2 + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + ldr r7, _0805009C + ldr r0, [r7] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + bge _0805005C + b _0804FED8 +_0805005C: + ldr r0, _080500A0 + ldrh r0, [r0] + cmp r0, 0 + beq _08050088 + movs r6, 0 + ldr r3, _0805009C + ldr r0, [r3] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + bge _08050088 + movs r2, 0 + ldr r1, _080500A4 +_08050076: + strh r2, [r1] + strh r2, [r1, 0x10] + adds r1, 0x2 + adds r6, 0x1 + ldr r0, [r3] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + blt _08050076 +_08050088: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08050098: .4byte 0x03007380 +_0805009C: .4byte 0x03004854 +_080500A0: .4byte 0x0202e8cc +_080500A4: .4byte 0x03002a20 + thumb_func_end sub_804FE70 + + thumb_func_start sub_80500A8 +sub_80500A8: @ 80500A8 + push {r4-r6,lr} + movs r6, 0 + ldr r5, _080500EC + ldr r4, [r5] + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 23 + adds r4, 0xA2 + adds r4, r0 + ldrb r3, [r4] + ldr r0, [r5] + adds r0, 0x6F + ldrb r0, [r0] + cmp r0, 0 + bne _0805018A + ldr r0, _080500F0 + ldrb r0, [r0, 0x13] + cmp r0, 0x2 + bne _080500FC + ldr r2, _080500F4 + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805010A + ldrh r0, [r2, 0x28] + ldr r1, _080500F8 + bics r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r6, r0, 31 + b _0805010A + .align 2, 0 +_080500EC: .4byte 0x03004854 +_080500F0: .4byte 0x02024ea4 +_080500F4: .4byte 0x03001770 +_080500F8: .4byte 0x00000201 +_080500FC: + ldr r0, _0805015C + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805010A + movs r6, 0x1 +_0805010A: + cmp r6, 0 + beq _0805018A + ldr r4, _08050160 + ldr r1, [r4] + lsls r2, r3, 1 + adds r0, r1, 0 + adds r0, 0x9A + adds r0, r2 + adds r1, 0x5C + ldrh r0, [r0] + adds r1, r0 + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08050164 + adds r0, r1 + adds r1, r3, 0x4 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + ldr r0, [r4] + adds r0, 0x54 + ldrh r4, [r0] + bl GetMultiplayerId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl task_tutorial_oak_boy_girl + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08050170 + ldr r1, _08050168 + ldr r0, _0805016C + b _08050188 + .align 2, 0 +_0805015C: .4byte 0x03001770 +_08050160: .4byte 0x03004854 +_08050164: .4byte 0x02020004 +_08050168: .4byte 0x03002f90 +_0805016C: .4byte 0x00004523 +_08050170: + cmp r0, 0x1 + bne _08050184 + ldr r1, _0805017C + ldr r0, _08050180 + b _08050188 + .align 2, 0 +_0805017C: .4byte 0x03002f90 +_08050180: .4byte 0x00005432 +_08050184: + ldr r1, _080501E4 + ldr r0, _080501E8 +_08050188: + strh r0, [r1, 0x4] +_0805018A: + ldr r2, _080501EC + ldr r1, [r2] + adds r1, 0x7E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _080501BA + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0x56 + ldrh r3, [r1] + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, 0x80 + ble _080501B2 + subs r0, r3, 0x1 + strh r0, [r1] +_080501B2: + ldr r0, [r2] + adds r0, 0x7E + movs r1, 0 + strb r1, [r0] +_080501BA: + ldr r0, _080501F0 + ldrb r0, [r0] + cmp r0, 0 + beq _080501DE + ldr r0, _080501F4 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080501DE + ldr r0, [r2] + ldr r1, _080501F8 + adds r2, r0, r1 + ldrb r0, [r2] + movs r1, 0x1 + eors r0, r1 + strb r0, [r2] +_080501DE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080501E4: .4byte 0x03002f90 +_080501E8: .4byte 0x00002345 +_080501EC: .4byte 0x03004854 +_080501F0: .4byte 0x020297ed +_080501F4: .4byte 0x03001770 +_080501F8: .4byte 0x0000014b + thumb_func_end sub_80500A8 + + thumb_func_start sub_80501FC +sub_80501FC: @ 80501FC + push {r4-r6,lr} + bl sub_8051474 + ldr r4, _08050294 + ldr r0, [r4] + movs r1, 0x96 + lsls r1, 1 + adds r2, r0, r1 + ldr r1, [r2] + ldr r0, _08050298 + cmp r1, r0 + bhi _08050218 + adds r0, r1, 0x1 + str r0, [r2] +_08050218: + bl sub_80500A8 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x56 + ldrh r0, [r0] + movs r5, 0x9F + lsls r5, 1 + adds r1, r5 + ldrh r1, [r1] + bl SetLinkDebugValues + bl sub_804FE70 + ldr r0, [r4] + adds r0, r5 + ldrh r0, [r0] + movs r6, 0xFA + lsls r6, 2 + adds r1, r6, 0 + bl sub_805194C + ldr r0, [r4] + adds r0, 0x56 + ldrh r0, [r0] + bl sub_8051A3C + bl sub_8051B18 + bl sub_805123C + ldr r2, [r4] + adds r3, r2, 0 + adds r3, 0x6F + ldrb r0, [r3] + cmp r0, 0 + bne _0805027E + movs r1, 0xA0 + lsls r1, 1 + adds r0, r2, r1 + ldrh r1, [r0] + ldr r0, _0805029C + cmp r1, r0 + bls _0805027E + adds r0, r2, r5 + strh r6, [r0] + movs r0, 0x1 + strb r0, [r3] + ldr r0, _080502A0 + bl SetMainCallback2 +_0805027E: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08050294: .4byte 0x03004854 +_08050298: .4byte 0x00057e03 +_0805029C: .4byte 0x000003e7 +_080502A0: .4byte sub_8050954 + thumb_func_end sub_80501FC + + thumb_func_start help_system_is_not_first_time +help_system_is_not_first_time: @ 80502A4 + push {r4,r5,lr} + lsls r1, 24 + lsls r2, 24 + lsrs r1, 20 + adds r4, r1, r0 + lsrs r2, 20 + adds r5, r2, r0 + ldrh r0, [r4] + ldrh r1, [r5] + cmp r0, r1 + bne _080502E2 + adds r0, r4, 0x2 + adds r1, r5, 0x2 + bl StringCompare + cmp r0, 0 + bne _080502F0 + ldr r0, [r4, 0x8] + ldr r2, _080502E8 + ands r0, r2 + ldr r1, [r5, 0x8] + ands r1, r2 + cmp r0, r1 + bne _080502F0 + ldr r0, [r4, 0xC] + ldr r2, _080502EC + ands r0, r2 + ldr r1, [r5, 0xC] + ands r1, r2 + cmp r0, r1 + bne _080502F0 +_080502E2: + movs r0, 0x1 + b _080502F2 + .align 2, 0 +_080502E8: .4byte 0xffffff00 +_080502EC: .4byte 0x00ffffff +_080502F0: + movs r0, 0 +_080502F2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end help_system_is_not_first_time + + thumb_func_start sub_80502F8 +sub_80502F8: @ 80502F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r10, r0 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + mov r2, sp + movs r4, 0x5 +_08050314: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _08050314 + movs r6, 0 + mov r1, sp + movs r4, 0x4 +_08050328: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08050332 + adds r6, 0x1 +_08050332: + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _08050328 + cmp r6, 0x5 + beq _08050386 + cmp r3, 0x3 + bhi _08050386 + movs r4, 0 + ldr r3, [sp, 0x10] + cmp r4, r3 + bge _0805039E + mov r3, r10 +_0805034C: + movs r6, 0 + ldr r7, [sp, 0x10] + cmp r6, r7 + bge _08050394 + mov r9, r3 + mov r5, r10 + lsls r0, r4, 24 + mov r8, r0 +_0805035C: + mov r1, r9 + ldrh r0, [r1] + ldrh r2, [r5] + cmp r0, r2 + bne _0805038A + cmp r4, r6 + beq _0805038A + cmp r0, 0xAF + bne _08050386 + lsls r2, r6, 24 + lsrs r2, 24 + mov r0, r10 + mov r7, r8 + lsrs r1, r7, 24 + str r3, [sp, 0xC] + bl help_system_is_not_first_time + lsls r0, 24 + ldr r3, [sp, 0xC] + cmp r0, 0 + beq _0805038A +_08050386: + movs r0, 0xC + b _080504DE +_0805038A: + adds r5, 0x10 + adds r6, 0x1 + ldr r0, [sp, 0x10] + cmp r6, r0 + blt _0805035C +_08050394: + adds r3, 0x10 + adds r4, 0x1 + ldr r1, [sp, 0x10] + cmp r4, r1 + blt _0805034C +_0805039E: + movs r2, 0 + mov r1, sp + movs r4, 0x4 +_080503A4: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080503B2 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080503B2: + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080503A4 + cmp r2, 0x3 + bls _080503C2 + movs r0, 0xD + b _080504DE +_080503C2: + cmp r2, 0x3 + bne _080503CA + movs r0, 0xB + b _080504DE +_080503CA: + movs r4, 0 + mov r1, sp +_080503CE: + movs r7, 0 + ldrsh r0, [r1, r7] + cmp r0, 0x32 + ble _080503D8 + b _080504D8 +_080503D8: + adds r1, 0x2 + adds r4, 0x1 + cmp r4, 0x4 + ble _080503CE + cmp r2, 0x1 + bne _0805042A + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + ble _080503F2 + movs r0, 0x1 + b _080504DE +_080503F2: + mov r0, sp + ldrh r0, [r0, 0x2] + lsls r0, 16 + cmp r0, 0 + ble _08050400 + movs r0, 0x2 + b _080504DE +_08050400: + mov r0, sp + movs r3, 0x4 + ldrsh r0, [r0, r3] + cmp r0, 0 + ble _0805040E + movs r0, 0x3 + b _080504DE +_0805040E: + mov r0, sp + movs r4, 0x6 + ldrsh r0, [r0, r4] + cmp r0, 0 + ble _0805041C + movs r0, 0x4 + b _080504DE +_0805041C: + mov r0, sp + movs r7, 0x8 + ldrsh r0, [r0, r7] + cmp r0, 0 + ble _0805042A + movs r0, 0x5 + b _080504DE +_0805042A: + cmp r2, 0x2 + bne _080504DC + movs r4, 0 + ldr r5, _08050474 + mov r1, sp + adds r2, r5, 0 +_08050436: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _08050442 + strh r4, [r2] + adds r2, 0x2 +_08050442: + adds r1, 0x2 + adds r4, 0x1 + cmp r4, 0x4 + ble _08050436 + movs r4, 0 + ldrsh r3, [r5, r4] + lsls r0, r3, 1 + mov r7, sp + adds r1, r7, r0 + movs r0, 0x2 + ldrsh r2, [r5, r0] + lsls r0, r2, 1 + add r0, sp + movs r4, 0 + ldrsh r1, [r1, r4] + movs r7, 0 + ldrsh r0, [r0, r7] + cmp r1, r0 + blt _08050498 + adds r0, r3, 0 + cmp r0, 0 + bne _08050478 + lsls r0, r2, 16 + b _080504A2 + .align 2, 0 +_08050474: .4byte 0x03000520 +_08050478: + cmp r0, 0x1 + bne _08050480 + lsls r0, r2, 16 + b _080504AE +_08050480: + cmp r0, 0x2 + bne _08050488 + lsls r0, r2, 16 + b _080504BA +_08050488: + cmp r0, 0x3 + bne _08050490 + lsls r0, r2, 16 + b _080504C6 +_08050490: + cmp r0, 0x4 + bne _080504DC + lsls r0, r2, 16 + b _080504D2 +_08050498: + movs r2, 0x2 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080504A8 + lsls r0, r3, 16 +_080504A2: + movs r1, 0x6 + orrs r0, r1 + b _080504DE +_080504A8: + cmp r0, 0x1 + bne _080504B4 + lsls r0, r3, 16 +_080504AE: + movs r1, 0x7 + orrs r0, r1 + b _080504DE +_080504B4: + cmp r0, 0x2 + bne _080504C0 + lsls r0, r3, 16 +_080504BA: + movs r1, 0x8 + orrs r0, r1 + b _080504DE +_080504C0: + cmp r0, 0x3 + bne _080504CC + lsls r0, r3, 16 +_080504C6: + movs r1, 0x9 + orrs r0, r1 + b _080504DE +_080504CC: + cmp r0, 0x4 + bne _080504DC + lsls r0, r3, 16 +_080504D2: + movs r1, 0xA + orrs r0, r1 + b _080504DE +_080504D8: + movs r0, 0xE + b _080504DE +_080504DC: + movs r0, 0 +_080504DE: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80502F8 + + thumb_func_start sub_80504F0 +sub_80504F0: @ 80504F0 + ldr r1, _080504F8 + strh r0, [r1] + bx lr + .align 2, 0 +_080504F8: .4byte 0x0300052c + thumb_func_end sub_80504F0 + + thumb_func_start unref_sub_80504FC +unref_sub_80504FC: @ 80504FC + ldr r0, _08050504 + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_08050504: .4byte 0x0300052c + thumb_func_end unref_sub_80504FC + + thumb_func_start sub_8050508 +sub_8050508: @ 8050508 + ldr r1, _08050510 + strh r0, [r1] + bx lr + .align 2, 0 +_08050510: .4byte 0x0300052e + thumb_func_end sub_8050508 + + thumb_func_start unref_sub_8050514 +unref_sub_8050514: @ 8050514 + ldr r0, _0805051C + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_0805051C: .4byte 0x0300052e + thumb_func_end unref_sub_8050514 + + thumb_func_start sub_8050520 +sub_8050520: @ 8050520 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + str r0, [sp] + mov r8, r1 + str r3, [sp, 0x4] + ldr r0, [sp, 0x30] + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + ldr r7, _080505DC + adds r2, r7, 0 + movs r1, 0 + adds r0, r7, 0 + adds r0, 0xA +_0805054A: + strh r1, [r0] + subs r0, 0x2 + cmp r0, r2 + bge _0805054A + movs r6, 0 + cmp r6, r9 + bge _08050580 + ldr r0, _080505DC + mov r12, r0 + ldr r5, [sp] + adds r5, 0x9 +_08050560: + movs r3, 0 + adds r4, r5, 0 + mov r2, r12 +_08050566: + adds r1, r4, r3 + ldrh r0, [r2] + ldrb r1, [r1] + adds r0, r1 + strh r0, [r2] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x5 + ble _08050566 + adds r5, 0x10 + adds r6, 0x1 + cmp r6, r9 + blt _08050560 +_08050580: + movs r1, 0 + ldrsh r3, [r7, r1] + ldrh r0, [r7] + ldrh r1, [r7, 0x2] + subs r0, r1 + strh r0, [r7] + ldrh r0, [r7, 0x4] + subs r1, r0 + strh r1, [r7, 0x2] + ldrh r1, [r7, 0x6] + subs r0, r1 + strh r0, [r7, 0x4] + ldrh r0, [r7, 0x8] + subs r1, r0 + strh r1, [r7, 0x6] + subs r0, r3 + strh r0, [r7, 0x8] + movs r3, 0 + movs r2, 0 + adds r1, r7, 0 + movs r6, 0x4 +_080505AA: + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, 0 + bge _080505B6 + strh r2, [r1] + adds r3, 0x1 +_080505B6: + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080505AA + lsls r0, r3, 24 + lsrs r0, 24 + mov r10, r0 + movs r4, 0 + ldr r1, _080505DC + movs r6, 0x4 +_080505CA: + ldrh r2, [r1] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, 0 + ble _080505E4 + cmp r0, r3 + bge _080505E0 + strh r4, [r1] + b _080505E4 + .align 2, 0 +_080505DC: .4byte 0x03000510 +_080505E0: + subs r0, r2, r3 + strh r0, [r1] +_080505E4: + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080505CA + ldr r1, _080506C4 + ldr r2, _080506C8 + movs r6, 0x4 +_080505F2: + movs r3, 0 + ldrsh r0, [r1, r3] + stm r2!, {r0} + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080505F2 + ldr r1, _080506CC + ldr r0, [sp, 0x8] + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + adds r3, r0, 0 + adds r3, 0x64 + ldr r4, _080506D0 + str r3, [r4] + movs r6, 0x4 +_08050616: + movs r0, 0 + ldrsh r5, [r7, r0] + adds r0, r5, 0 + muls r0, r3 + movs r1, 0xA + str r3, [sp, 0xC] + bl __divsi3 + adds r5, r0, 0 + movs r1, 0xA + bl __modsi3 + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0xA + bl __divsi3 + adds r5, r0, 0 + ldr r3, [sp, 0xC] + cmp r4, 0x4 + ble _08050642 + adds r5, 0x1 +_08050642: + strh r5, [r7] + adds r7, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _08050616 + ldr r1, _080506C4 + ldr r2, _080506D4 + movs r6, 0x4 +_08050652: + movs r3, 0 + ldrsh r0, [r1, r3] + stm r2!, {r0} + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _08050652 + ldr r4, _080506C4 + ldr r0, [sp] + adds r1, r4, 0 + mov r2, r9 + mov r3, r10 + bl sub_80502F8 + mov r5, r8 + strb r0, [r5] + movs r1, 0xA + ldrsh r0, [r4, r1] + mov r1, r9 + bl __divsi3 + mov r3, r9 + subs r0, r3 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _0805068C + movs r0, 0 + strh r0, [r4, 0xA] +_0805068C: + mov r5, r8 + ldrb r0, [r5] + cmp r0, 0xC + bne _080506E6 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + movs r6, 0 + ldr r0, _080506D8 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0 + movs r4, 0x1 + movs r3, 0x2 +_080506B4: + adds r2, r0, 0 + asrs r2, r6 + ands r2, r4 + cmp r2, 0 + beq _080506DC + strh r3, [r1] + b _080506DE + .align 2, 0 +_080506C4: .4byte 0x03000510 +_080506C8: .4byte 0x03000530 +_080506CC: .4byte 0x0000014d +_080506D0: .4byte 0x0300055c +_080506D4: .4byte 0x03000548 +_080506D8: .4byte gUnknown_082165DF +_080506DC: + strh r2, [r1] +_080506DE: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x4 + ble _080506B4 +_080506E6: + ldr r7, _08050740 + movs r2, 0xFF + adds r1, r7, 0 + movs r6, 0x5 +_080506EE: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0xFF + ble _080506F8 + strh r2, [r1] +_080506F8: + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080506EE + ldrh r0, [r7] + mov r4, r8 + strb r0, [r4, 0x1] + ldrh r0, [r7, 0x2] + strb r0, [r4, 0x2] + ldrh r0, [r7, 0x4] + strb r0, [r4, 0x3] + ldrh r0, [r7, 0x6] + strb r0, [r4, 0x4] + ldrh r0, [r7, 0x8] + strb r0, [r4, 0x5] + ldrh r0, [r7, 0xA] + strb r0, [r4, 0x6] + movs r6, 0 + adds r2, r7, 0 +_0805071E: + ldr r5, [sp, 0x4] + adds r1, r5, r6 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _0805071E + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08050740: .4byte 0x03000510 + thumb_func_end sub_8050520 + + thumb_func_start sub_8050744 +sub_8050744: @ 8050744 + push {r4,lr} + sub sp, 0x4 + ldr r4, [sp, 0xC] + lsls r2, 24 + lsrs r2, 24 + lsls r4, 16 + lsrs r4, 16 + str r4, [sp] + bl sub_8050520 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8050744 + + thumb_func_start sub_8050760 +sub_8050760: @ 8050760 + push {r4-r6,lr} + ldr r0, _08050780 + ldr r0, [r0] + movs r2, 0x96 + lsls r2, 1 + adds r1, r0, r2 + ldrh r1, [r1] + adds r0, 0x5A + ldrh r4, [r0] + movs r2, 0 + ldr r5, _08050784 + cmp r1, r5 + bhi _08050788 + movs r2, 0x5 + b _080507DA + .align 2, 0 +_08050780: .4byte 0x03004854 +_08050784: .4byte 0x00000383 +_08050788: + ldr r3, _0805079C + adds r0, r1, r3 + lsls r0, 16 + lsrs r0, 16 + ldr r3, _080507A0 + cmp r0, r3 + bhi _080507A4 + movs r2, 0x4 + b _080507DA + .align 2, 0 +_0805079C: .4byte 0xfffffc7c +_080507A0: .4byte 0x00000257 +_080507A4: + ldr r6, _080507B4 + adds r0, r1, r6 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r3 + bhi _080507B8 + movs r2, 0x3 + b _080507DA + .align 2, 0 +_080507B4: .4byte 0xfffffa24 +_080507B8: + ldr r3, _080507C8 + adds r0, r1, r3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r5 + bhi _080507CC + movs r2, 0x2 + b _080507DA + .align 2, 0 +_080507C8: .4byte 0xfffff7cc +_080507CC: + ldr r6, _080507F8 + adds r0, r1, r6 + lsls r0, 16 + ldr r1, _080507FC + cmp r0, r1 + bhi _080507DA + movs r2, 0x1 +_080507DA: + lsls r0, r2, 16 + asrs r0, 16 + bl sub_8050508 + movs r2, 0 + cmp r4, 0x40 + bhi _080508BC + adds r0, r4, 0 + subs r0, 0x32 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050804 + ldr r2, _08050800 + b _080508BC + .align 2, 0 +_080507F8: .4byte 0xfffff31c +_080507FC: .4byte 0x012b0000 +_08050800: .4byte 0x0000ffff +_08050804: + adds r0, r4, 0 + subs r0, 0x64 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050818 + ldr r2, _08050814 + b _080508BC + .align 2, 0 +_08050814: .4byte 0x0000fffe +_08050818: + adds r0, r4, 0 + subs r0, 0x96 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _0805082C + ldr r2, _08050828 + b _080508BC + .align 2, 0 +_08050828: .4byte 0x0000fffd +_0805082C: + adds r0, r4, 0 + subs r0, 0xC8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050840 + ldr r2, _0805083C + b _080508BC + .align 2, 0 +_0805083C: .4byte 0x0000fffc +_08050840: + adds r0, r4, 0 + subs r0, 0xFA + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050854 + ldr r2, _08050850 + b _080508BC + .align 2, 0 +_08050850: .4byte 0x0000fffb +_08050854: + ldr r1, _08050864 + adds r0, r4, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _0805086C + ldr r2, _08050868 + b _080508BC + .align 2, 0 +_08050864: .4byte 0xfffffea2 +_08050868: .4byte 0x0000fffa +_0805086C: + ldr r3, _0805087C + adds r0, r4, r3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050884 + ldr r2, _08050880 + b _080508BC + .align 2, 0 +_0805087C: .4byte 0xfffffe70 +_08050880: .4byte 0x0000fff9 +_08050884: + ldr r6, _08050894 + adds r0, r4, r6 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _0805089C + ldr r2, _08050898 + b _080508BC + .align 2, 0 +_08050894: .4byte 0xfffffe0c +_08050898: .4byte 0x0000fff8 +_0805089C: + ldr r1, _080508AC + adds r0, r4, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _080508B4 + ldr r2, _080508B0 + b _080508BC + .align 2, 0 +_080508AC: .4byte 0xfffffdda +_080508B0: .4byte 0x0000fff7 +_080508B4: + ldr r0, _080508CC + cmp r4, r0 + bls _080508BC + ldr r2, _080508D0 +_080508BC: + lsls r0, r2, 16 + asrs r0, 16 + bl sub_80504F0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080508CC: .4byte 0x00000257 +_080508D0: .4byte 0x0000fff6 + thumb_func_end sub_8050760 + + thumb_func_start sub_80508D4 +sub_80508D4: @ 80508D4 + push {lr} + ldr r2, _080508F8 + ldr r1, [r2] + adds r1, 0xAA + strb r0, [r1] + ldr r0, [r2] + adds r0, 0xAA + ldrb r1, [r0] + lsls r1, 28 + movs r0, 0x90 + lsls r0, 23 + adds r1, r0 + lsrs r1, 24 + movs r0, 0xC0 + bl sub_814A880 + pop {r0} + bx r0 + .align 2, 0 +_080508F8: .4byte 0x03004854 + thumb_func_end sub_80508D4 + + thumb_func_start sub_80508FC +sub_80508FC: @ 80508FC + push {r4,lr} + sub sp, 0x4 + ldr r4, _08050944 + ldr r0, [r4] + adds r0, 0xAA + movs r1, 0 + strb r1, [r0] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl DrawDefaultWindow + ldr r1, _08050948 + ldr r3, _0805094C + movs r0, 0x20 + str r0, [sp] + movs r0, 0 + movs r2, 0xC + bl sub_814A5C0 + ldr r0, _08050950 + movs r1, 0x18 + movs r2, 0x9 + bl Print + ldr r0, [r4] + adds r0, 0xAA + ldrb r0, [r0] + bl sub_80508D4 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08050944: .4byte 0x03004854 +_08050948: .4byte 0x0000ffff +_0805094C: .4byte 0x00002d9f +_08050950: .4byte gUnknown_0842D2C5 + thumb_func_end sub_80508FC + + thumb_func_start sub_8050954 +sub_8050954: @ 8050954 + push {r4-r7,lr} + bl sub_8051474 + bl GetMultiplayerId + ldr r0, _08050978 + ldr r0, [r0] + adds r0, 0x6F + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0xC + bls _0805096E + b _08050CB6 +_0805096E: + lsls r0, 2 + ldr r1, _0805097C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050978: .4byte 0x03004854 +_0805097C: .4byte _08050980 + .align 2, 0 +_08050980: + .4byte _080509B4 + .4byte _080509F8 + .4byte _08050A4C + .4byte _08050A94 + .4byte _08050AD0 + .4byte _08050ADE + .4byte _08050B08 + .4byte _08050B34 + .4byte _08050B42 + .4byte _08050B58 + .4byte _08050BE0 + .4byte _08050C64 + .4byte _08050C98 +_080509B4: + bl ClearLinkCallback + ldr r0, _080509C8 + movs r1, 0x80 + lsls r1, 1 + bl m4aMPlayTempoControl + movs r4, 0 + b _080509E4 + .align 2, 0 +_080509C8: .4byte 0x03007380 +_080509CC: + ldr r0, _080509F0 + ldr r0, [r0] + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + bl DestroyTask + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080509E4: + ldr r0, _080509F4 + ldrh r0, [r0] + cmp r4, r0 + bcc _080509CC + b _08050C82 + .align 2, 0 +_080509F0: .4byte 0x03004854 +_080509F4: .4byte 0x0202e8cc +_080509F8: + ldr r1, _08050A24 + ldr r3, [r1] + adds r2, r3, 0 + adds r2, 0x56 + ldrh r0, [r2] + subs r0, 0x20 + strh r0, [r2] + lsls r0, 16 + adds r4, r1, 0 + cmp r0, 0 + bgt _08050A40 + movs r0, 0 + strh r0, [r2] + ldr r0, _08050A28 + ldrb r0, [r0] + cmp r0, 0 + beq _08050A2C + adds r1, r3, 0 + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + b _08050A32 + .align 2, 0 +_08050A24: .4byte 0x03004854 +_08050A28: .4byte 0x03002fa4 +_08050A2C: + adds r1, r3, 0 + adds r1, 0x6F + movs r0, 0x5 +_08050A32: + strb r0, [r1] + ldr r0, [r4] + movs r1, 0 + strb r1, [r0] + ldr r0, _08050A48 + bl m4aMPlayStop +_08050A40: + bl sub_804E290 + b _08050CB6 + .align 2, 0 +_08050A48: .4byte 0x03007400 +_08050A4C: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + beq _08050A58 + b _08050C82 +_08050A58: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _08050A64 + b _08050CB6 +_08050A64: + ldr r4, _08050A90 + ldr r3, [r4] + movs r2, 0xDE + lsls r2, 1 + adds r1, r3, r2 + movs r5, 0x96 + lsls r5, 1 + adds r0, r3, r5 + ldr r0, [r0] + str r0, [r1] + adds r0, r3, 0 + adds r0, 0x5A + ldrh r2, [r0] + adds r5, 0x94 + adds r0, r3, r5 + strh r2, [r0] + movs r0, 0 + movs r2, 0x28 + bl SendBlock + ldr r1, [r4] + b _08050C86 + .align 2, 0 +_08050A90: .4byte 0x03004854 +_08050A94: + bl GetBlockRecievedStatus + lsls r0, 24 + cmp r0, 0 + bne _08050AA0 + b _08050CB6 +_08050AA0: + ldr r2, _08050AC8 + ldr r0, _08050ACC + ldr r3, [r0] + ldrh r0, [r2, 0x4] + adds r1, r3, 0 + adds r1, 0x5A + strh r0, [r1] + movs r0, 0x96 + lsls r0, 1 + adds r1, r3, r0 + ldr r0, [r2] + str r0, [r1] + adds r1, r3, 0 + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl ResetBlockReceivedFlags + b _08050CB6 + .align 2, 0 +_08050AC8: .4byte 0x03002b80 +_08050ACC: .4byte 0x03004854 +_08050AD0: + bl sub_8052228 + lsls r0, 24 + cmp r0, 0 + bne _08050ADC + b _08050CB6 +_08050ADC: + b _08050C82 +_08050ADE: + bl sub_8051C58 + lsls r0, 24 + cmp r0, 0 + bne _08050AEA + b _08050CB6 +_08050AEA: + ldr r0, _08050AFC + ldrb r0, [r0] + cmp r0, 0 + bne _08050B00 + movs r0, 0x22 + bl sav12_xor_increment + b _08050C82 + .align 2, 0 +_08050AFC: .4byte 0x03004834 +_08050B00: + movs r0, 0x21 + bl sav12_xor_increment + b _08050C82 +_08050B08: + ldr r0, _08050B2C + ldr r1, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl DrawDefaultWindow + ldr r0, _08050B30 + movs r1, 0x1 + movs r2, 0xF + bl AddTextPrinterWithCallbackForMessage + b _08050CB6 + .align 2, 0 +_08050B2C: .4byte 0x03004854 +_08050B30: .4byte gUnknown_0842D3B5 +_08050B34: + bl sub_8072080 + lsls r0, 24 + cmp r0, 0 + bne _08050B40 + b _08050CB6 +_08050B40: + b _08050C82 +_08050B42: + ldr r4, _08050B54 + ldr r0, [r4] + adds r0, 0xAA + movs r1, 0 + strb r1, [r0] + bl sub_80508FC + ldr r1, [r4] + b _08050C86 + .align 2, 0 +_08050B54: .4byte 0x03004854 +_08050B58: + ldr r0, _08050B80 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08050B88 + ldr r0, _08050B84 + ldr r0, [r0] + adds r0, 0xAA + ldrb r0, [r0] + cmp r0, 0 + beq _08050B76 + movs r0, 0x5 + bl audio_play +_08050B76: + movs r0, 0 + bl sub_80508D4 + b _08050CB6 + .align 2, 0 +_08050B80: .4byte 0x03001770 +_08050B84: .4byte 0x03004854 +_08050B88: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08050BA8 + ldr r0, _08050BA4 + ldr r0, [r0] + adds r0, 0xAA + ldrb r0, [r0] + cmp r0, 0x1 + beq _08050BD4 + movs r0, 0x5 + bl audio_play + b _08050BD4 + .align 2, 0 +_08050BA4: .4byte 0x03004854 +_08050BA8: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08050BB8 + movs r0, 0x5 + bl audio_play + b _08050C82 +_08050BB8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08050BC2 + b _08050CB6 +_08050BC2: + movs r0, 0x5 + bl audio_play + ldr r0, _08050BDC + ldr r1, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08050BD4: + movs r0, 0x1 + bl sub_80508D4 + b _08050CB6 + .align 2, 0 +_08050BDC: .4byte 0x03004854 +_08050BE0: + ldr r6, _08050C10 + movs r7, 0 + ldr r0, _08050C14 + strh r0, [r6] + ldr r4, _08050C18 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xAA + ldrb r5, [r0] + cmp r5, 0 + bne _08050C50 + movs r0, 0x4 + bl IsBagPocketNonEmpty + lsls r0, 24 + cmp r0, 0 + bne _08050C20 + ldr r0, [r4] + adds r0, 0x7C + movs r1, 0x2 + strh r1, [r0] + ldr r0, _08050C1C + b _08050C48 + .align 2, 0 +_08050C10: .4byte 0x03002f90 +_08050C14: .4byte 0x00002fff +_08050C18: .4byte 0x03004854 +_08050C1C: .4byte 0x00009999 +_08050C20: + bl sub_810CA00 + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08050C40 + ldr r0, [r4] + adds r0, 0x7C + movs r1, 0x3 + strh r1, [r0] + ldr r0, _08050C3C + b _08050C48 + .align 2, 0 +_08050C3C: .4byte 0x0000aaaa +_08050C40: + ldr r0, [r4] + adds r0, 0x7C + strh r5, [r0] + ldr r0, _08050C4C +_08050C48: + strh r0, [r6, 0x2] + b _08050C82 + .align 2, 0 +_08050C4C: .4byte 0x00007779 +_08050C50: + adds r1, r2, 0 + adds r1, 0x7C + movs r0, 0x1 + strh r0, [r1] + ldr r0, _08050C60 + strh r0, [r6, 0x2] + subs r1, 0xD + b _08050C88 + .align 2, 0 +_08050C60: .4byte 0x00008888 +_08050C64: + ldr r0, _08050C70 + ldrb r0, [r0] + cmp r0, 0 + beq _08050C78 + ldr r0, _08050C74 + b _08050CA4 + .align 2, 0 +_08050C70: .4byte 0x03004834 +_08050C74: .4byte sub_80510E8 +_08050C78: + ldr r0, _08050C90 + movs r1, 0x1 + movs r2, 0xF + bl AddTextPrinterWithCallbackForMessage +_08050C82: + ldr r0, _08050C94 + ldr r1, [r0] +_08050C86: + adds r1, 0x6F +_08050C88: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08050CB6 + .align 2, 0 +_08050C90: .4byte gUnknown_0842D3A5 +_08050C94: .4byte 0x03004854 +_08050C98: + bl sub_8072080 + lsls r0, 24 + cmp r0, 0 + beq _08050CB6 + ldr r0, _08050CE0 +_08050CA4: + bl SetMainCallback2 + ldr r2, _08050CE4 + ldr r0, [r2] + adds r0, 0x6F + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0] +_08050CB6: + bl sub_8051B18 + ldr r0, _08050CE4 + ldr r0, [r0] + adds r0, 0x56 + ldrh r0, [r0] + bl sub_8051A3C + bl sub_805123C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08050CE0: .4byte sub_8050E30 +_08050CE4: .4byte 0x03004854 + thumb_func_end sub_8050954 + + thumb_func_start sub_8050CE8 +sub_8050CE8: @ 8050CE8 + push {r4,lr} + ldr r1, _08050D08 + ldr r0, [r1] + movs r2, 0xE2 + lsls r2, 1 + adds r0, r2 + ldr r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _08050CFE + b _08050E28 +_08050CFE: + lsls r0, 2 + ldr r1, _08050D0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050D08: .4byte 0x03004854 +_08050D0C: .4byte _08050D10 + .align 2, 0 +_08050D10: + .4byte _08050D2C + .4byte _08050D44 + .4byte _08050D70 + .4byte _08050D80 + .4byte _08050DA6 + .4byte _08050DEC + .4byte _08050E06 +_08050D2C: + bl sub_80084A4 + ldr r0, _08050D40 + ldr r2, [r0] + movs r3, 0xE2 + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0x1 + b _08050DF8 + .align 2, 0 +_08050D40: .4byte 0x03004854 +_08050D44: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _08050E28 + ldr r0, _08050D68 + ldr r1, [r0] + movs r2, 0xE2 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r1, _08050D6C + movs r0, 0x1 + strb r0, [r1] + b _08050E28 + .align 2, 0 +_08050D68: .4byte 0x03004854 +_08050D6C: .4byte 0x03001bb4 +_08050D70: + bl sub_8125E2C + ldr r0, _08050D7C + ldr r2, [r0] + b _08050DEE + .align 2, 0 +_08050D7C: .4byte 0x03004854 +_08050D80: + ldr r1, [r4] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0xA + bne _08050E28 + bl sub_80084A4 + ldr r1, [r4] + movs r3, 0xE2 + lsls r3, 1 + adds r1, r3 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _08050E28 +_08050DA6: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _08050E28 + bl sub_8125E6C + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08050DD0 + ldr r0, _08050DCC + ldr r0, [r0] + movs r1, 0xE2 + lsls r1, 1 + adds r0, r1 + movs r1, 0x5 + str r1, [r0] + b _08050E28 + .align 2, 0 +_08050DCC: .4byte 0x03004854 +_08050DD0: + ldr r0, _08050DE8 + ldr r1, [r0] + movs r3, 0x98 + lsls r3, 1 + adds r0, r1, r3 + str r2, [r0] + movs r0, 0xE2 + lsls r0, 1 + adds r1, r0 + movs r0, 0x3 + str r0, [r1] + b _08050E28 + .align 2, 0 +_08050DE8: .4byte 0x03004854 +_08050DEC: + ldr r2, [r4] +_08050DEE: + movs r3, 0xE2 + lsls r3, 1 + adds r1, r2, r3 + ldr r0, [r1] + adds r0, 0x1 +_08050DF8: + str r0, [r1] + movs r0, 0x98 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + str r0, [r1] + b _08050E28 +_08050E06: + ldr r1, [r4] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x5 + ble _08050E28 + ldr r1, _08050E24 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _08050E2A + .align 2, 0 +_08050E24: .4byte 0x03001bb4 +_08050E28: + movs r0, 0 +_08050E2A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8050CE8 + + thumb_func_start sub_8050E30 +sub_8050E30: @ 8050E30 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _08050E50 + ldr r0, [r1] + adds r0, 0x6F + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0xC + bls _08050E44 + b _080510C4 +_08050E44: + lsls r0, 2 + ldr r1, _08050E54 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050E50: .4byte 0x03004854 +_08050E54: .4byte _08050E58 + .align 2, 0 +_08050E58: + .4byte _08050E8C + .4byte _08050ED8 + .4byte _08050F18 + .4byte _08050F6C + .4byte _08050F8C + .4byte _08050FAA + .4byte _08050FD4 + .4byte _08051004 + .4byte _08051020 + .4byte _08051030 + .4byte _08051054 + .4byte _08051094 + .4byte _080510B6 +_08050E8C: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x70 + ldrh r2, [r0] + ldr r0, _08050EB8 + cmp r2, r0 + bne _08050E9C + b _08050FA2 +_08050E9C: + ldr r0, _08050EBC + cmp r2, r0 + beq _08050EA4 + b _080510C4 +_08050EA4: + adds r0, r1, 0 + adds r0, 0x78 + ldrh r2, [r0] + ldr r0, _08050EC0 + cmp r2, r0 + bne _08050EC4 + adds r1, 0x6F + movs r0, 0x2 + strb r0, [r1] + b _080510C4 + .align 2, 0 +_08050EB8: .4byte 0x00002222 +_08050EBC: .4byte 0x00001111 +_08050EC0: .4byte 0x00009999 +_08050EC4: + ldr r0, _08050ED4 + cmp r2, r0 + bne _08050FA2 + adds r1, 0x6F + movs r0, 0x1 + strb r0, [r1] + b _080510C4 + .align 2, 0 +_08050ED4: .4byte 0x0000aaaa +_08050ED8: + ldr r0, [r5] + adds r0, 0x6F + movs r1, 0x3 + strb r1, [r0] + bl sub_814A7FC + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl Reset + ldr r4, _08050F0C + ldr r0, [r5] + adds r0, 0x7A + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _08050F10 + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldr r1, _08050F14 + b _08050F4C + .align 2, 0 +_08050F0C: .4byte 0x020234cc +_08050F10: .4byte 0x03002978 +_08050F14: .4byte gUnknown_0842D461 +_08050F18: + ldr r1, [r5] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_814A7FC + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl Reset + ldr r4, _08050F60 + ldr r0, [r5] + adds r0, 0x7A + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _08050F64 + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldr r1, _08050F68 +_08050F4C: + adds r0, r4, 0 + bl StringAppend + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl AddTextPrinterWithCallbackForMessage + b _080510C4 + .align 2, 0 +_08050F60: .4byte 0x020234cc +_08050F64: .4byte 0x03002978 +_08050F68: .4byte gUnknown_0842D434 +_08050F6C: + bl sub_8072080 + lsls r0, 24 + cmp r0, 0 + bne _08050F78 + b _080510C4 +_08050F78: + ldr r0, _08050F88 + ldr r1, [r0] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _080510AC + .align 2, 0 +_08050F88: .4byte 0x03004854 +_08050F8C: + ldr r2, [r5] + movs r0, 0x98 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bgt _08050FA0 + b _080510C4 +_08050FA0: + adds r1, r2, 0 +_08050FA2: + adds r1, 0x6F + movs r0, 0x5 + strb r0, [r1] + b _080510C4 +_08050FAA: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl DrawDefaultWindow + ldr r0, _08050FCC + movs r1, 0x2 + movs r2, 0xF + bl Print + bl sub_80084A4 + ldr r0, _08050FD0 + ldr r1, [r0] + b _080510AC + .align 2, 0 +_08050FCC: .4byte gUnknown_0842C328 +_08050FD0: .4byte 0x03004854 +_08050FD4: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080510C4 + ldr r3, _08051000 + ldr r1, [r3] + movs r2, 0x98 + lsls r2, 1 + adds r0, r1, r2 + movs r2, 0 + str r2, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r3] + movs r1, 0xE2 + lsls r1, 1 + adds r0, r1 + str r2, [r0] + b _080510C4 + .align 2, 0 +_08051000: .4byte 0x03004854 +_08051004: + bl sub_8050CE8 + lsls r0, 24 + cmp r0, 0 + beq _080510C4 + movs r0, 0x37 + bl audio_play + ldr r0, _0805101C + ldr r1, [r0] + b _080510AC + .align 2, 0 +_0805101C: .4byte 0x03004854 +_08051020: + ldr r1, [r5] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_80084A4 + b _080510C4 +_08051030: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080510C4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08051050 + ldr r1, [r0] + b _080510AC + .align 2, 0 +_08051050: .4byte 0x03004854 +_08051054: + ldr r0, _0805107C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080510C4 + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x70 + ldrh r1, [r0] + ldr r0, _08051080 + cmp r1, r0 + bne _08051088 + ldr r0, _08051084 + bl SetMainCallback2 + b _080510C4 + .align 2, 0 +_0805107C: .4byte 0x0202f388 +_08051080: .4byte 0x00002222 +_08051084: .4byte sub_804E538 +_08051088: + movs r1, 0x98 + lsls r1, 1 + adds r0, r2, r1 + str r3, [r0] + adds r1, r2, 0 + b _080510AC +_08051094: + ldr r1, [r5] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x1E + ble _080510C4 + bl sub_800832C + ldr r1, [r5] +_080510AC: + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080510C4 +_080510B6: + ldr r0, _080510E0 + ldrb r0, [r0] + cmp r0, 0 + bne _080510C4 + ldr r0, _080510E4 + bl SetMainCallback2 +_080510C4: + bl sub_805123C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080510E0: .4byte 0x03002fa4 +_080510E4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_8050E30 + + thumb_func_start sub_80510E8 +sub_80510E8: @ 80510E8 + push {lr} + ldr r1, _08051104 + ldr r0, [r1] + adds r0, 0x6F + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0xA + bls _080510FA + b _0805121E +_080510FA: + lsls r0, 2 + ldr r1, _08051108 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051104: .4byte 0x03004854 +_08051108: .4byte _0805110C + .align 2, 0 +_0805110C: + .4byte _08051138 + .4byte _0805116E + .4byte _08051190 + .4byte _080511BC + .4byte _0805121E + .4byte _0805121E + .4byte _0805121E + .4byte _0805121E + .4byte _0805121E + .4byte _080511D8 + .4byte _080511F0 +_08051138: + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0x1 + bhi _0805114A + adds r1, 0x6F + movs r0, 0x9 + strb r0, [r1] +_0805114A: + ldr r2, [r3] + adds r0, r2, 0 + adds r0, 0x7C + ldrh r1, [r0] + cmp r1, 0x2 + bne _0805115A + subs r0, 0xD + strb r1, [r0] +_0805115A: + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0x3 + bne _0805121E + adds r1, 0x6F + movs r0, 0x1 + strb r0, [r1] + b _0805121E +_0805116E: + ldr r0, [r3] + adds r0, 0x6F + movs r1, 0x3 + strb r1, [r0] + bl sub_814A7FC + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl Reset + ldr r0, _0805118C + b _080511AC + .align 2, 0 +_0805118C: .4byte gUnknown_0842D41A +_08051190: + ldr r0, [r3] + adds r0, 0x6F + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + bl sub_814A7FC + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl Reset + ldr r0, _080511B8 +_080511AC: + movs r1, 0x1 + movs r2, 0xF + bl AddTextPrinterWithCallbackForMessage + b _0805121E + .align 2, 0 +_080511B8: .4byte gUnknown_0842D3DC +_080511BC: + bl sub_8072080 + lsls r0, 24 + cmp r0, 0 + beq _0805121E + ldr r0, _080511D4 + ldr r0, [r0] + adds r0, 0x6F + movs r1, 0x9 + strb r1, [r0] + b _0805121E + .align 2, 0 +_080511D4: .4byte 0x03004854 +_080511D8: + movs r0, 0x3 + bl BeginFastPaletteFade + ldr r0, _080511EC + ldr r1, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0805121E + .align 2, 0 +_080511EC: .4byte 0x03004854 +_080511F0: + ldr r0, _08051210 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0805121E + ldr r0, [r3] + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + bne _08051218 + ldr r0, _08051214 + bl SetMainCallback2 + b _0805121E + .align 2, 0 +_08051210: .4byte 0x0202f388 +_08051214: .4byte sub_804E538 +_08051218: + ldr r0, _08051238 + bl SetMainCallback2 +_0805121E: + bl sub_805123C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 +_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80510E8 + + thumb_func_start sub_805123C +sub_805123C: @ 805123C + push {r4-r6,lr} + ldr r0, _0805126C + ldrb r0, [r0] + cmp r0, 0 + bne _08051248 + b _08051404 +_08051248: + ldr r4, _08051270 + ldrh r1, [r4] + ldr r0, _08051274 + cmp r1, r0 + bne _080512C6 + ldrh r1, [r4, 0x8] + ldr r0, _08051278 + cmp r1, r0 + bne _080512B8 + ldrh r3, [r4, 0x10] + ldr r0, _0805127C + cmp r3, r0 + beq _08051298 + cmp r3, r0 + bgt _08051284 + ldr r0, _08051280 + b _08051286 + .align 2, 0 +_0805126C: .4byte 0x03002fa4 +_08051270: .4byte 0x03002a20 +_08051274: .4byte 0x00002fff +_08051278: .4byte 0x00001111 +_0805127C: .4byte 0x00009999 +_08051280: .4byte 0x00008888 +_08051284: + ldr r0, _08051290 +_08051286: + cmp r3, r0 + beq _08051298 + ldr r2, _08051294 + b _080512A8 + .align 2, 0 +_08051290: .4byte 0x0000aaaa +_08051294: .4byte 0x03004854 +_08051298: + ldr r2, _080512B0 + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0x78 + strh r3, [r1] + ldrh r1, [r4, 0x18] + adds r0, 0x7A + strh r1, [r0] +_080512A8: + ldr r0, [r2] + adds r0, 0x70 + ldr r1, _080512B4 + b _080512C4 + .align 2, 0 +_080512B0: .4byte 0x03004854 +_080512B4: .4byte 0x00001111 +_080512B8: + ldr r0, _080512F4 + cmp r1, r0 + bne _080512C6 + ldr r0, _080512F8 + ldr r0, [r0] + adds r0, 0x70 +_080512C4: + strh r1, [r0] +_080512C6: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + beq _080512D2 + b _08051404 +_080512D2: + ldr r2, _080512F8 + ldr r0, [r2] + adds r0, 0x70 + ldrh r1, [r0] + ldr r0, _080512FC + cmp r1, r0 + bne _080512E2 + b _08051404 +_080512E2: + ldr r0, _080512F4 + cmp r1, r0 + bne _080512EA + b _08051404 +_080512EA: + movs r4, 0 + ldr r6, _08051300 + adds r5, r2, 0 + b _0805134E + .align 2, 0 +_080512F4: .4byte 0x00002222 +_080512F8: .4byte 0x03004854 +_080512FC: .4byte 0x00001111 +_08051300: .4byte 0x00002fff +_08051304: + ldr r1, _08051328 + lsls r2, r4, 1 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r6 + bne _08051348 + adds r0, r1, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldrh r1, [r0] + ldr r0, _0805132C + cmp r1, r0 + beq _08051340 + cmp r1, r0 + bgt _08051334 + ldr r0, _08051330 + b _0805133C + .align 2, 0 +_08051328: .4byte 0x03002a20 +_0805132C: .4byte 0x00008888 +_08051330: .4byte 0x00007779 +_08051334: + ldr r0, _08051360 + cmp r1, r0 + beq _08051340 + ldr r0, _08051364 +_0805133C: + cmp r1, r0 + bne _08051348 +_08051340: + ldr r0, [r5] + adds r0, 0x70 + adds r0, r2 + strh r1, [r0] +_08051348: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0805134E: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _08051304 + movs r4, 0 + b _0805136E + .align 2, 0 +_08051360: .4byte 0x00009999 +_08051364: .4byte 0x0000aaaa +_08051368: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0805136E: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcs _0805138A + ldr r0, _0805139C + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08051368 +_0805138A: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _08051404 + movs r4, 0 + ldr r5, _080513A0 + b _080513AA + .align 2, 0 +_0805139C: .4byte 0x03004854 +_080513A0: .4byte 0x00007779 +_080513A4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080513AA: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcs _080513C6 + ldr r0, _080513E0 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r5 + beq _080513A4 +_080513C6: + ldr r5, _080513E4 + movs r6, 0 + ldr r0, _080513E8 + strh r0, [r5] + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _080513F0 + ldr r0, _080513EC + strh r0, [r5, 0x2] + b _08051404 + .align 2, 0 +_080513E0: .4byte 0x03004854 +_080513E4: .4byte 0x03002f90 +_080513E8: .4byte 0x00002fff +_080513EC: .4byte 0x00002222 +_080513F0: + ldr r0, _0805140C + strh r0, [r5, 0x2] + ldr r0, _08051410 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0x4] + strh r4, [r5, 0x6] +_08051404: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0805140C: .4byte 0x00001111 +_08051410: .4byte 0x03004854 + thumb_func_end sub_805123C + + thumb_func_start sub_8051414 +sub_8051414: @ 8051414 + push {lr} + sub sp, 0x14 + adds r1, r0, 0 + movs r0, 0xF0 + lsls r0, 7 + str r0, [sp] + movs r0, 0xA0 + lsls r0, 7 + str r0, [sp, 0x4] + mov r3, sp + ldr r0, _08051470 + ldr r0, [r0] + mov r12, r0 + movs r0, 0xA2 + lsls r0, 1 + add r0, r12 + ldrh r2, [r0] + movs r0, 0x78 + subs r0, r2 + strh r0, [r3, 0x8] + movs r0, 0xA3 + lsls r0, 1 + add r0, r12 + ldrh r2, [r0] + movs r0, 0x50 + subs r0, r2 + strh r0, [r3, 0xA] + mov r2, sp + movs r3, 0xA1 + lsls r3, 1 + add r3, r12 + ldrh r0, [r3] + strh r0, [r2, 0xC] + ldrh r0, [r3] + strh r0, [r2, 0xE] + mov r0, r12 + adds r0, 0x54 + ldrh r0, [r0] + strh r0, [r2, 0x10] + mov r0, sp + movs r2, 0x1 + bl BgAffineSet + add sp, 0x14 + pop {r0} + bx r0 + .align 2, 0 +_08051470: .4byte 0x03004854 + thumb_func_end sub_8051414 + + thumb_func_start sub_8051474 +sub_8051474: @ 8051474 + push {lr} + ldr r0, _080514A0 + ldr r3, [r0] + adds r1, r3, 0 + adds r1, 0x54 + ldrh r2, [r1] + adds r0, r3, 0 + adds r0, 0x58 + strh r2, [r0] + subs r0, 0x2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + movs r1, 0xB4 + lsls r1, 1 + adds r0, r3, r1 + bl sub_8051414 + pop {r0} + bx r0 + .align 2, 0 +_080514A0: .4byte 0x03004854 + thumb_func_end sub_8051474 + + thumb_func_start sub_80514A4 +sub_80514A4: @ 80514A4 + ldr r1, _080514E8 + ldr r0, _080514EC + ldr r2, [r0] + movs r3, 0xB4 + lsls r3, 1 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldr r0, [r0] + str r0, [r1] + adds r1, 0x4 + adds r3, 0x4 + adds r0, r2, r3 + ldr r0, [r0] + str r0, [r1] + bx lr + .align 2, 0 +_080514E8: .4byte 0x04000020 +_080514EC: .4byte 0x03004854 + thumb_func_end sub_80514A4 + + thumb_func_start sub_80514F0 +sub_80514F0: @ 80514F0 + ldr r1, _0805151C + ldr r0, _08051520 + ldr r3, [r0] + movs r0, 0xA2 + lsls r0, 1 + adds r2, r3, r0 + ldrh r0, [r2] + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xA3 + lsls r0, 1 + adds r3, r0 + ldrh r0, [r3] + strh r0, [r1] + subs r1, 0x6 + ldrh r0, [r2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r3] + strh r0, [r1] + bx lr + .align 2, 0 +_0805151C: .4byte 0x04000014 +_08051520: .4byte 0x03004854 + thumb_func_end sub_80514F0 + + thumb_func_start sub_8051524 +sub_8051524: @ 8051524 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r0, r1 + strh r0, [r2, 0x34] + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0 + bge _08051542 + adds r0, 0x7 +_08051542: + asrs r0, 3 + strh r0, [r2, 0x24] + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0 + bge _08051550 + adds r0, 0x7 +_08051550: + asrs r0, 3 + strh r0, [r2, 0x26] + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08051568 + adds r0, r2, 0 + bl DestroySprite +_08051568: + pop {r0} + bx r0 + thumb_func_end sub_8051524 + + thumb_func_start sub_805156C +sub_805156C: @ 805156C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + bl Random + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0x1 + ands r1, r0 + adds r0, r1, 0x1 + cmp r0, 0 + beq _08051628 + ldr r0, _08051638 + mov r9, r0 + ldr r2, _0805163C + mov r10, r2 + adds r6, r1, 0x1 + movs r3, 0x1F + mov r8, r3 + movs r7, 0x10 +_08051598: + bl Random + ldr r1, _08051640 + ldr r4, [r1] + adds r4, 0x54 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x14 + bl __umodsi3 + ldrh r1, [r4] + adds r1, r0 + lsls r1, 16 + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r2, r0, 16 + adds r0, r2, 0 + adds r0, 0x40 + lsls r0, 1 + add r0, r9 + movs r3, 0 + ldrsh r1, [r0, r3] + cmp r1, 0 + bge _080515CC + adds r1, 0x3 +_080515CC: + asrs r1, 2 + lsls r0, r2, 1 + add r0, r9 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _080515DC + adds r0, 0x3 +_080515DC: + asrs r2, r0, 2 + adds r1, 0x78 + adds r2, 0x50 + ldr r0, _08051644 + movs r3, 0x1 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + mov r3, r10 + adds r4, r5, r3 + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + ands r0, r1 + subs r0, r7, r0 + strh r0, [r4, 0x2E] + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r2, r8 + ands r0, r2 + subs r0, r7, r0 + strh r0, [r4, 0x30] + ldr r3, _08051648 + adds r5, r3 + ldr r0, _0805164C + str r0, [r5] + subs r6, 0x1 + cmp r6, 0 + bne _08051598 +_08051628: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08051638: .4byte gUnknown_08208344 +_0805163C: .4byte 0x02020004 +_08051640: .4byte 0x03004854 +_08051644: .4byte gSpriteTemplate_82164FC +_08051648: .4byte 0x02020020 +_0805164C: .4byte sub_8051524 + thumb_func_end sub_805156C + + thumb_func_start sub_8051650 +sub_8051650: @ 8051650 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __divsi3 + negs r0, r0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0805167C + adds r0, r4, 0 + bl DestroySprite +_0805167C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8051650 + + thumb_func_start sub_8051684 +sub_8051684: @ 8051684 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + movs r1, 0x2E + ldrsh r0, [r2, r1] + lsls r0, 1 + negs r0, r0 + strh r0, [r2, 0x26] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xC + negs r1, r1 + cmp r0, r1 + bge _080516A8 + ldr r0, _080516C0 + strh r0, [r2, 0x26] +_080516A8: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080516BC + adds r0, r2, 0 + bl DestroySprite +_080516BC: + pop {r0} + bx r0 + .align 2, 0 +_080516C0: .4byte 0x0000fff4 + thumb_func_end sub_8051684 + + thumb_func_start sub_80516C4 +sub_80516C4: @ 80516C4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080516F4 + ldr r3, [r2] + lsls r4, r0, 1 + adds r2, r3, 0 + adds r2, 0x80 + adds r2, r4 + strh r1, [r2] + lsls r0, 4 + movs r2, 0xBE + lsls r2, 1 + adds r0, r2 + adds r3, r0 + adds r0, r3, 0 + bl sub_804E844 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080516F4: .4byte 0x03004854 + thumb_func_end sub_80516C4 + + thumb_func_start unref_sub_80516F8 +unref_sub_80516F8: @ 80516F8 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080517B8 + adds r4, r0, r1 + ldr r6, _080517BC + ldrb r0, [r6] + cmp r0, 0 + beq _0805180C + bl GetMultiplayerId + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080517D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + ble _08051730 + strh r1, [r4, 0x8] +_08051730: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x64 + bne _080517A0 + ldr r0, _080517C0 + ldr r0, [r0] + adds r0, 0x4 + movs r1, 0x14 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl ZeroFillWindowRect + movs r0, 0x4 + movs r1, 0x4 + movs r2, 0xA + movs r3, 0xC + bl DrawDefaultWindow + movs r2, 0 + ldr r6, _080517C4 +_0805175C: + adds r4, r2, 0x1 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + cmp r0, 0 + beq _08051784 + ldr r1, _080517C8 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + lsls r2, 25 + movs r1, 0xA0 + lsls r1, 19 + adds r2, r1 + lsrs r2, 24 + movs r1, 0x5 + bl Print +_08051784: + movs r0, 0 + movs r1, 0xD + movs r2, 0x1D + movs r3, 0x13 + bl DrawDefaultWindow + ldr r0, _080517CC + movs r1, 0x1 + movs r2, 0xF + bl Print + adds r2, r4, 0 + cmp r2, 0x2 + ble _0805175C +_080517A0: + ldr r0, _080517D0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805180C + bl sub_8007E4C + adds r0, r5, 0 + bl DestroyTask + b _0805180C + .align 2, 0 +_080517B8: .4byte 0x03004b20 +_080517BC: .4byte 0x03002fa4 +_080517C0: .4byte 0x03004854 +_080517C4: .4byte 0x03002974 +_080517C8: .4byte gUnknown_08216284 +_080517CC: .4byte gUnknown_0842D373 +_080517D0: .4byte 0x03001770 +_080517D4: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080517E6 + ldr r0, _08051814 + movs r1, 0x3 + movs r2, 0xA + bl Print +_080517E6: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + ble _080517F8 + movs r0, 0 + strh r0, [r4, 0x8] +_080517F8: + ldr r0, _08051818 + ldrb r0, [r0] + cmp r0, 0x4 + bls _0805180C + ldrb r0, [r6] + cmp r0, 0x1 + bne _0805180C + adds r0, r5, 0 + bl DestroyTask +_0805180C: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08051814: .4byte gUnknown_0842D390 +_08051818: .4byte 0x03002a68 + thumb_func_end unref_sub_80516F8 + + thumb_func_start sub_805181C +sub_805181C: @ 805181C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08051858 + cmp r0, 0x1 + bgt _08051832 + cmp r0, 0 + beq _08051838 + b _080518BE +_08051832: + cmp r0, 0x2 + beq _08051872 + b _080518BE +_08051838: + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x58 + ble _080518BE + movs r0, 0x58 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x38 + bl audio_play + b _080518BE +_08051858: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080518BE + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0 + strh r0, [r4, 0x32] + b _080518BE +_08051872: + ldrh r0, [r4, 0x30] + adds r0, 0x4 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB0 + ble _080518BE + ldrh r0, [r4, 0x34] + adds r0, 0x1 + adds r1, r0, 0 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080518AC + adds r0, r4, 0 + bl DestroySprite + ldr r0, _080518A8 + movs r2, 0x14 + negs r2, r2 + movs r1, 0x78 + movs r3, 0x2 + bl CreateSprite + b _080518BE + .align 2, 0 +_080518A8: .4byte gSpriteTemplate_821657C +_080518AC: + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080518C8 + strh r0, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim +_080518BE: + ldrh r0, [r4, 0x30] + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080518C8: .4byte 0x0000fff0 + thumb_func_end sub_805181C + + thumb_func_start sub_80518CC +sub_80518CC: @ 80518CC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08051908 + cmp r0, 0x1 + bgt _080518E2 + cmp r0, 0 + beq _080518E8 + b _0805193C +_080518E2: + cmp r0, 0x2 + beq _0805191E + b _0805193C +_080518E8: + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5C + ble _0805193C + movs r0, 0x5C + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x15 + bl audio_play + b _0805193C +_08051908: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _0805193C + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _0805193C +_0805191E: + ldrh r0, [r4, 0x30] + adds r0, 0x4 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB0 + ble _0805193C + ldr r0, _08051948 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_0805193C: + ldrh r0, [r4, 0x30] + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08051948: .4byte 0x03004854 + thumb_func_end sub_80518CC + + thumb_func_start sub_805194C +sub_805194C: @ 805194C + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r3, r1, 16 + ldr r1, _08051978 + ldr r1, [r1] + movs r2, 0xA0 + lsls r2, 1 + adds r1, r2 + ldrh r2, [r1] + cmp r2, r0 + bcs _08051972 + adds r0, r2, 0x2 + strh r0, [r1] + ldrh r0, [r1] + adds r1, r3, 0 + bl sub_805197C +_08051972: + pop {r0} + bx r0 + .align 2, 0 +_08051978: .4byte 0x03004854 + thumb_func_end sub_805194C + + thumb_func_start sub_805197C +sub_805197C: @ 805197C + push {r4-r7,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r7, _08051A0C + lsrs r0, 10 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _08051994 + adds r0, r1, 0x7 +_08051994: + asrs r4, r0, 3 + movs r3, 0 + cmp r3, r4 + bge _080519BC + ldr r0, _08051A10 + adds r6, r0, 0 + adds r0, 0x10 + adds r5, r0, 0 + adds r2, r7, 0 + adds r2, 0x56 + adds r0, r7, 0 + adds r3, r4, 0 +_080519AC: + strh r6, [r0, 0x16] + strh r5, [r2] + adds r2, 0x2 + adds r0, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _080519AC + adds r3, r4, 0 +_080519BC: + adds r0, r1, 0 + cmp r1, 0 + bge _080519C4 + adds r0, r1, 0x7 +_080519C4: + asrs r2, r0, 3 + lsls r0, r2, 3 + subs r2, r1, r0 + cmp r2, 0 + beq _080519E2 + lsls r0, r3, 1 + adds r0, r7 + ldr r4, _08051A14 + adds r1, r2, r4 + strh r1, [r0, 0x16] + adds r0, 0x56 + adds r4, 0x10 + adds r1, r2, r4 + strh r1, [r0] + adds r3, 0x1 +_080519E2: + cmp r3, 0x7 + bgt _08051A06 + ldr r0, _08051A18 + adds r4, r0, 0 + adds r0, 0x10 + adds r2, r0, 0 + lsls r1, r3, 1 + adds r0, r1, 0 + adds r0, 0x56 + adds r0, r7 + adds r1, r7 +_080519F8: + strh r4, [r1, 0x16] + strh r2, [r0] + adds r0, 0x2 + adds r1, 0x2 + adds r3, 0x1 + cmp r3, 0x7 + ble _080519F8 +_08051A06: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08051A0C: .4byte 0x06006000 +_08051A10: .4byte 0x000081e9 +_08051A14: .4byte 0xffff81e1 +_08051A18: .4byte 0x000081e1 + thumb_func_end sub_805197C + + thumb_func_start sub_8051A1C +sub_8051A1C: @ 8051A1C + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08051A34 + muls r0, r1 + cmp r0, 0 + bge _08051A2E + ldr r1, _08051A38 + adds r0, r1 +_08051A2E: + asrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_08051A34: .4byte 0x00057e40 +_08051A38: .4byte 0x0000ffff + thumb_func_end sub_8051A1C + + thumb_func_start sub_8051A3C +sub_8051A3C: @ 8051A3C + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r0, 16 + bl sub_8051A1C + adds r5, r0, 0 + ldr r0, _08051ABC + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x5A + ldrh r0, [r1] + cmp r0, r5 + bcs _08051A5A + strh r5, [r1] +_08051A5A: + movs r6, 0 +_08051A5C: + mov r0, sp + adds r4, r0, r6 + adds r0, r5, 0 + movs r1, 0xA + bl __umodsi3 + strb r0, [r4] + adds r0, r5, 0 + movs r1, 0xA + bl __udivsi3 + adds r5, r0, 0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x4 + bls _08051A5C + ldr r2, _08051AC0 + mov r0, sp + ldr r3, _08051AC4 + adds r1, r3, 0 + ldrb r0, [r0, 0x4] + adds r0, r1, r0 + strh r0, [r2] + adds r2, 0x2 + mov r0, sp + ldrb r0, [r0, 0x3] + adds r0, r1 + strh r0, [r2] + adds r2, 0x2 + mov r0, sp + ldrb r0, [r0, 0x2] + adds r0, r1 + strh r0, [r2] + adds r2, 0x4 + mov r0, sp + ldrb r0, [r0, 0x1] + adds r0, r1 + strh r0, [r2] + adds r2, 0x2 + mov r0, sp + ldrb r0, [r0] + adds r1, r0 + strh r1, [r2] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08051ABC: .4byte 0x03004854 +_08051AC0: .4byte 0x06006458 +_08051AC4: .4byte 0x00008172 + thumb_func_end sub_8051A3C + + thumb_func_start sub_8051AC8 +sub_8051AC8: @ 8051AC8 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 16 + lsrs r5, r4, 16 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08051AEC + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __umodsi3 + lsrs r1, r4, 17 + subs r0, r1 + strh r0, [r6] +_08051AEC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8051AC8 + + thumb_func_start sub_8051AF4 +sub_8051AF4: @ 8051AF4 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bge _08051B06 + adds r0, r2, 0x1 + strh r0, [r1] +_08051B06: + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _08051B14 + subs r0, r2, 0x1 + strh r0, [r1] +_08051B14: + pop {r0} + bx r0 + thumb_func_end sub_8051AF4 + + thumb_func_start sub_8051B18 +sub_8051B18: @ 8051B18 + push {r4,lr} + ldr r4, _08051B3C + ldr r0, [r4] + movs r1, 0xA2 + lsls r1, 1 + adds r0, r1 + bl sub_8051AF4 + ldr r0, [r4] + movs r1, 0xA3 + lsls r1, 1 + adds r0, r1 + bl sub_8051AF4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08051B3C: .4byte 0x03004854 + thumb_func_end sub_8051B18 + + thumb_func_start sub_8051B40 +sub_8051B40: @ 8051B40 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + movs r5, 0x8 + cmp r1, 0x9 + bhi _08051B50 + movs r5, 0x10 +_08051B50: + ldrh r0, [r4] + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _08051B6E + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __modsi3 + lsrs r1, r5, 1 + subs r0, r1 + b _08051B82 +_08051B6E: + cmp r1, 0 + bge _08051B76 + adds r0, 0x1 + strh r0, [r4] +_08051B76: + ldrh r1, [r4] + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _08051B84 + subs r0, r1, 0x1 +_08051B82: + strh r0, [r4] +_08051B84: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8051B40 + + thumb_func_start sub_8051B8C +sub_8051B8C: @ 8051B8C + push {r4,r5,lr} + ldr r5, _08051BE4 + ldr r2, [r5] + movs r4, 0x98 + lsls r4, 1 + adds r0, r2, r4 + ldr r1, [r0] + cmp r1, 0 + bne _08051BAC + movs r3, 0xA2 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] +_08051BAC: + ldr r0, [r5] + adds r2, r0, r4 + ldr r1, [r2] + adds r1, 0x1 + str r1, [r2] + movs r2, 0xA2 + lsls r2, 1 + adds r0, r2 + lsls r1, 16 + lsrs r1, 16 + bl sub_8051B40 + ldr r1, [r5] + movs r3, 0xA3 + lsls r3, 1 + adds r0, r1, r3 + adds r1, r4 + ldrh r1, [r1] + bl sub_8051B40 + ldr r2, [r5] + adds r0, r2, r4 + ldr r0, [r0] + cmp r0, 0x14 + beq _08051BE8 + movs r0, 0 + b _08051BFC + .align 2, 0 +_08051BE4: .4byte 0x03004854 +_08051BE8: + movs r1, 0xA2 + lsls r1, 1 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + movs r3, 0xA3 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + movs r0, 0x1 +_08051BFC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8051B8C + + thumb_func_start sub_8051C04 +sub_8051C04: @ 8051C04 + ldr r1, _08051C20 + ldr r2, [r1] + movs r3, 0xA2 + lsls r3, 1 + adds r1, r2, r3 + ldrh r1, [r1] + negs r1, r1 + strh r1, [r0, 0x24] + adds r3, 0x2 + adds r1, r2, r3 + ldrh r1, [r1] + negs r1, r1 + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_08051C20: .4byte 0x03004854 + thumb_func_end sub_8051C04 + + thumb_func_start sub_8051C24 +sub_8051C24: @ 8051C24 + push {lr} + ldr r2, _08051C4C + ldr r0, _08051C50 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 1 + ldr r3, _08051C54 + adds r2, r3 + adds r2, r0, r2 + adds r1, 0x5A + ldrh r1, [r1] + ldrh r0, [r2] + cmp r0, r1 + bcs _08051C48 + strh r1, [r2] +_08051C48: + pop {r0} + bx r0 + .align 2, 0 +_08051C4C: .4byte 0x02025734 +_08051C50: .4byte 0x03004854 +_08051C54: .4byte 0x0000096c + thumb_func_end sub_8051C24 + + thumb_func_start sub_8051C58 +sub_8051C58: @ 8051C58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + ldr r1, _08051C7C + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x6 + bls _08051C72 + b _0805200A +_08051C72: + lsls r0, 2 + ldr r1, _08051C80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051C7C: .4byte 0x03004854 +_08051C80: .4byte _08051C84 + .align 2, 0 +_08051C84: + .4byte _08051CA0 + .4byte _08051CB6 + .4byte _08051CD0 + .4byte _08051D20 + .4byte _08051F44 + .4byte _08051F58 + .4byte _08051FF8 +_08051CA0: + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + movs r1, 0x11 + str r1, [r0] + b _0805200A +_08051CB6: + ldr r1, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + subs r0, 0xA + str r0, [r2] + cmp r0, 0 + blt _08051CCA + b _0805200A +_08051CCA: + movs r0, 0 + str r0, [r2] + b _08051FE2 +_08051CD0: + ldr r1, [r2] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x14 + bgt _08051CE4 + b _0805200A +_08051CE4: + movs r6, 0 +_08051CE6: + ldr r4, _08051D18 + ldr r0, [r4] + adds r0, 0x50 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08051D1C + adds r0, r1 + bl DestroySprite + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x2 + bls _08051CE6 + ldr r1, [r4] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08051FE2 + .align 2, 0 +_08051D18: .4byte 0x03004854 +_08051D1C: .4byte 0x02020004 +_08051D20: + movs r0, 0x4 + movs r1, 0x2 + movs r2, 0x19 + movs r3, 0x11 + bl DrawDefaultWindow + ldr r0, _08051F14 + movs r1, 0x5 + movs r2, 0x3 + movs r3, 0xA0 + bl Free + movs r6, 0 + ldr r1, _08051F18 + ldr r0, [r1] + adds r0, 0x88 + add r2, sp, 0xC + mov r9, r2 + mov r2, sp + adds r2, 0x16 + str r2, [sp, 0x30] + ldrb r0, [r0] + cmp r6, r0 + bcs _08051E04 + mov r8, r1 + ldr r0, _08051F1C + mov r10, r0 +_08051D56: + mov r1, r8 + ldr r2, [r1] + movs r1, 0xB2 + lsls r1, 1 + adds r0, r2, r1 + adds r0, r6 + ldrb r5, [r0] + mov r7, r9 + lsls r1, r5, 4 + adds r1, r2 + movs r2, 0xBF + lsls r2, 1 + adds r1, r2 + adds r0, r7, 0 + bl StringCopy + lsls r4, r5, 3 + subs r4, r5 + lsls r4, 2 + mov r1, r10 + adds r0, r4, r1 + ldrb r1, [r0, 0x1A] + adds r0, r7, 0 + bl ConvertInternationalString + adds r0, r7, 0 + ldr r1, _08051F20 + bl StringAppend + mov r2, r8 + ldr r0, [r2] + adds r7, r0, 0 + adds r7, 0xAB + adds r5, r6, 0x1 + adds r0, r7, 0 + adds r1, r5, 0 + bl ConvertIntToDecimalString + adds r7, r0, 0 + movs r1, 0 + strb r1, [r7] + movs r0, 0xAD + strb r0, [r7, 0x1] + strb r1, [r7, 0x2] + adds r7, 0x3 + ldr r0, _08051F24 + adds r4, r0 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x58 + movs r3, 0 + bl sub_8072C74 + adds r7, r0, 0 + add r1, sp, 0xC + movs r2, 0x9D + movs r3, 0 + bl sub_8072C74 + mov r2, r8 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0xAB + ldr r3, _08051F28 + adds r1, 0x88 + ldrb r2, [r1] + adds r3, r2, r3 + ldr r1, _08051F2C + adds r2, r1 + ldrb r1, [r2] + adds r2, r6, 0 + muls r2, r1 + ldrb r3, [r3] + adds r2, r3 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x5 + bl Print + lsls r5, 16 + lsrs r6, r5, 16 + mov r1, r8 + ldr r0, [r1] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + bcc _08051D56 +_08051E04: + ldr r6, _08051F18 + ldr r0, [r6] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, r9 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r7, r0, 0 + adds r7, 0xAB + ldr r1, _08051F30 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + ldr r0, [r6] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0x64 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r7, 0 + movs r2, 0x79 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + movs r1, 0 + strb r1, [r7] + movs r0, 0xAD + strb r0, [r7, 0x1] + strb r1, [r7, 0x2] + adds r7, 0x3 + adds r0, r7, 0 + mov r1, r9 + movs r2, 0x8E + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F34 + bl StringCopy + ldr r0, [r6] + adds r0, 0xAB + movs r1, 0x5 + movs r2, 0xD + bl Print + ldr r0, [r6] + movs r2, 0x96 + lsls r2, 1 + adds r0, r2 + ldr r0, [r0] + movs r1, 0x3C + bl __udivsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x3C + bl __umodsi3 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0x3C + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, r9 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [sp, 0x30] + adds r1, r5, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r7, r0, 0 + adds r7, 0xAB + ldr r1, _08051F38 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + mov r1, r9 + movs r2, 0x66 + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F3C + bl StringAppend + adds r7, r0, 0 + ldr r1, [sp, 0x30] + movs r2, 0x88 + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F40 + bl StringCopy + ldr r0, [r6] + adds r0, 0xAB + movs r1, 0x5 + movs r2, 0xF + bl Print + ldr r1, [r6] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08051FE2 + .align 2, 0 +_08051F14: .4byte gUnknown_0842D479 +_08051F18: .4byte 0x03004854 +_08051F1C: .4byte 0x03002970 +_08051F20: .4byte gUnknown_0842D498 +_08051F24: .4byte 0x03002978 +_08051F28: .4byte gUnknown_082165E9 +_08051F2C: .4byte gUnknown_082165EE +_08051F30: .4byte gUnknown_0842D4B7 +_08051F34: .4byte gUnknown_0842D4C5 +_08051F38: .4byte gUnknown_0842D49F +_08051F3C: .4byte gUnknown_0842D4AD +_08051F40: .4byte gUnknown_0842D4B2 +_08051F44: + ldr r0, _08051F54 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805200A + ldr r1, [r2] + b _08051FE2 + .align 2, 0 +_08051F54: .4byte 0x03001770 +_08051F58: + bl sub_8071EF4 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl DrawDefaultWindow + movs r6, 0 + add r5, sp, 0x28 + ldr r0, _08051FEC + ldr r0, [r0] + adds r3, r0, 0 + adds r3, 0x80 + add r2, sp, 0x20 +_08051F76: + lsls r1, r6, 1 + adds r0, r3, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _08051F86 + adds r1, r2, r1 + subs r0, 0x85 + strh r0, [r1] +_08051F86: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08051F76 + bl sub_8050760 + ldr r4, _08051FEC + ldr r3, [r4] + movs r1, 0xBE + lsls r1, 1 + adds r0, r3, r1 + adds r1, r3, 0 + adds r1, 0x88 + ldrb r2, [r1] + subs r1, 0x2E + ldrh r1, [r1] + str r1, [sp] + adds r1, r5, 0 + add r3, sp, 0x4 + bl sub_8050520 + ldr r1, [r4] + adds r1, 0xAB + adds r0, r5, 0 + bl sub_805201C + ldr r0, _08051FF0 + movs r1, 0x6 + bl CreateTask + ldr r0, [r4] + adds r0, 0xAB + movs r1, 0x1 + movs r2, 0xF + bl AddTextPrinterWithCallbackForMessage + ldr r0, _08051FF4 + ldrh r0, [r0] + movs r1, 0x1 + bl sub_80A9538 + adds r0, r5, 0 + bl sub_810CA34 + ldr r1, [r4] +_08051FE2: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0805200A + .align 2, 0 +_08051FEC: .4byte 0x03004854 +_08051FF0: .4byte sub_8052BD0 +_08051FF4: .4byte 0x0203855e +_08051FF8: + bl sub_8072080 + lsls r0, 24 + cmp r0, 0 + beq _0805200A + bl sub_8051C24 + movs r0, 0x1 + b _0805200C +_0805200A: + movs r0, 0 +_0805200C: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8051C58 + + thumb_func_start sub_805201C +sub_805201C: @ 805201C + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + adds r6, r1, 0 + movs r0, 0xFF + strb r0, [r6] + ldr r1, _080520B0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r6, 0 + bl StringCopy + ldr r1, _080520B4 + adds r0, r6, 0 + bl StringAppend + ldr r1, _080520B8 + adds r0, r6, 0 + bl StringAppend + adds r0, r5, 0 + bl sub_810C9B0 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl sub_810C9E8 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080520BC + adds r0, r6, 0 + bl StringAppend + mov r0, sp + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + mov r1, sp + bl StringAppend + ldr r1, _080520C0 + adds r0, r6, 0 + bl StringAppend + mov r0, sp + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + mov r1, sp + bl StringAppend + ldr r1, _080520C4 + adds r0, r6, 0 + bl StringAppend + ldr r1, _080520C8 + adds r0, r6, 0 + bl StringAppend + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080520B0: .4byte gUnknown_083F7EB8 +_080520B4: .4byte gUnknown_0842D368 +_080520B8: .4byte gUnknown_082162C8 +_080520BC: .4byte gUnknown_0842D4D3 +_080520C0: .4byte gUnknown_0842D4E1 +_080520C4: .4byte gUnknown_0842D4F4 +_080520C8: .4byte gUnknown_08216249 + thumb_func_end sub_805201C + + thumb_func_start sub_80520CC +sub_80520CC: @ 80520CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + mov r12, r2 + lsls r1, 24 + lsrs r7, r1, 24 + movs r0, 0 + cmp r0, r7 + bge _08052118 +_080520E2: + movs r5, 0 + adds r1, r0, 0x1 + mov r8, r1 + cmp r5, r7 + bge _08052112 + mov r1, r9 + adds r6, r1, r0 +_080520F0: + ldrb r4, [r6] + lsls r1, r4, 2 + add r1, r12 + mov r0, r9 + adds r2, r0, r5 + ldrb r3, [r2] + lsls r0, r3, 2 + add r0, r12 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + bls _0805210C + strb r3, [r6] + strb r4, [r2] +_0805210C: + adds r5, 0x1 + cmp r5, r7 + blt _080520F0 +_08052112: + mov r0, r8 + cmp r0, r7 + blt _080520E2 +_08052118: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80520CC + + thumb_func_start sub_8052124 +sub_8052124: @ 8052124 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + movs r5, 0 + ldr r1, _08052144 + ldr r0, [r1] + adds r0, 0x88 + mov r10, r1 + mov r2, sp + adds r2, 0x4 + str r2, [sp, 0x14] + b _08052158 + .align 2, 0 +_08052144: .4byte 0x03004854 +_08052148: + mov r4, sp + adds r0, r4, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r1] + adds r0, 0x88 +_08052158: + ldrb r0, [r0] + cmp r5, r0 + bcc _08052148 + movs r5, 0 + mov r1, r10 + ldr r0, [r1] + adds r1, r0, 0 + adds r1, 0x88 + ldrb r2, [r1] + cmp r5, r2 + bcs _080521D6 + ldr r4, [sp, 0x14] + mov r9, r4 + movs r2, 0xA6 + lsls r2, 1 + adds r2, r0 + mov r8, r2 + mov r12, r1 + movs r4, 0xA7 + lsls r4, 1 + adds r7, r0, r4 + movs r1, 0xA8 + lsls r1, 1 + adds r6, r0, r1 +_08052188: + lsls r4, r5, 2 + add r4, r9 + lsls r3, r5, 1 + adds r3, r5 + lsls r3, 1 + mov r2, r8 + adds r0, r2, r3 + ldrh r2, [r0] + lsls r0, r2, 5 + subs r0, r2 + lsls r1, r0, 6 + subs r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r1, 6 + str r1, [r4] + adds r0, r7, r3 + ldrh r2, [r0] + lsls r0, r2, 5 + subs r0, r2 + lsls r0, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + str r1, [r4] + movs r0, 0xFA + lsls r0, 2 + adds r1, r0 + adds r3, r6, r3 + ldrh r0, [r3] + subs r1, r0 + str r1, [r4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r12 + ldrb r1, [r1] + cmp r5, r1 + bcc _08052188 +_080521D6: + mov r2, r10 + ldr r0, [r2] + adds r0, 0x88 + ldrb r1, [r0] + mov r0, sp + ldr r2, [sp, 0x14] + bl sub_80520CC + movs r5, 0 + mov r4, r10 + ldr r0, [r4] + adds r0, 0x88 + ldrb r0, [r0] + cmp r5, r0 + bcs _08052218 + mov r2, r10 + movs r3, 0xB2 + lsls r3, 1 +_080521FA: + ldr r1, [r2] + adds r1, r3 + adds r1, r5 + mov r4, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r2] + adds r0, 0x88 + ldrb r0, [r0] + cmp r5, r0 + bcc _080521FA +_08052218: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8052124 + + thumb_func_start sub_8052228 +sub_8052228: @ 8052228 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _08052248 + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x6 + bls _0805223C + b _080524AE +_0805223C: + lsls r0, 2 + ldr r1, _0805224C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08052248: .4byte 0x03004854 +_0805224C: .4byte _08052250 + .align 2, 0 +_08052250: + .4byte _0805226C + .4byte _08052282 + .4byte _0805229C + .4byte _080522B6 + .4byte _08052464 + .4byte _0805247E + .4byte _080524A4 +_0805226C: + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + movs r1, 0xFF + str r1, [r0] + b _080524AE +_08052282: + ldr r1, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + subs r0, 0xA + str r0, [r2] + cmp r0, 0 + blt _08052296 + b _080524AE +_08052296: + movs r0, 0 + str r0, [r2] + b _08052494 +_0805229C: + ldr r1, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + adds r0, 0x1 + str r0, [r2] + cmp r0, 0x14 + bgt _080522B0 + b _080524AE +_080522B0: + movs r0, 0 + str r0, [r2] + b _08052494 +_080522B6: + movs r0, 0x4 + movs r1, 0x2 + movs r2, 0x19 + movs r3, 0x11 + bl DrawDefaultWindow + ldr r0, _0805236C + movs r1, 0x5 + movs r2, 0x3 + movs r3, 0xA0 + bl Free + ldr r6, _08052370 + adds r0, r6, 0 + movs r1, 0x8C + movs r2, 0x34 + movs r3, 0 + bl CreateSprite + ldr r7, _08052374 + ldr r1, [r7] + adds r1, 0x50 + strb r0, [r1] + ldr r1, _08052378 + mov r8, r1 + ldr r2, [r7] + adds r2, 0x50 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r5, r8 + adds r5, 0x1C + adds r0, r5 + ldr r4, _0805237C + str r4, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + movs r1, 0x3 + bl StartSpriteAnim + adds r0, r6, 0 + movs r1, 0xA4 + movs r2, 0x34 + movs r3, 0 + bl CreateSprite + ldr r1, [r7] + adds r1, 0x51 + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x51 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + str r4, [r0] + adds r0, r6, 0 + movs r1, 0xBC + movs r2, 0x34 + movs r3, 0 + bl CreateSprite + ldr r1, [r7] + adds r1, 0x52 + strb r0, [r1] + ldr r2, [r7] + adds r2, 0x52 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + str r4, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + movs r1, 0x1 + bl StartSpriteAnim + bl sub_8052124 + movs r2, 0 + mov r8, r2 + b _0805243C + .align 2, 0 +_0805236C: .4byte gUnknown_0842D4CB +_08052370: .4byte gSpriteTemplate_821645C +_08052374: .4byte 0x03004854 +_08052378: .4byte 0x02020004 +_0805237C: .4byte SpriteCallbackDummy +_08052380: + ldr r1, [r7] + movs r2, 0xB2 + lsls r2, 1 + adds r0, r1, r2 + add r0, r8 + ldrb r5, [r0] + adds r2, r1, 0 + adds r2, 0xAB + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x4 + strb r0, [r2, 0x2] + adds r2, 0x3 + mov r6, r8 + adds r6, 0x1 + adds r0, r2, 0 + adds r1, r6, 0 + bl ConvertIntToDecimalString + adds r2, r0, 0 + movs r1, 0 + strb r1, [r2] + movs r0, 0xAD + strb r0, [r2, 0x1] + strb r1, [r2, 0x2] + adds r2, 0x3 + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + ldr r0, _08052458 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, [r7] + lsls r4, r5, 1 + adds r4, r5 + lsls r4, 1 + movs r1, 0xA6 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x6C + movs r3, 0x1 + bl sub_8072C14 + adds r2, r0, 0 + ldr r0, [r7] + movs r1, 0xA7 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x84 + movs r3, 0x1 + bl sub_8072C14 + adds r2, r0, 0 + ldr r0, [r7] + movs r1, 0xA8 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x9C + movs r3, 0x1 + bl sub_8072C14 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0xAB + ldr r2, _0805245C + adds r1, 0x88 + ldrb r1, [r1] + adds r1, r2 + ldrb r1, [r1] + mov r2, r8 + muls r2, r1 + adds r2, 0x8 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x5 + bl Print + lsls r6, 16 + lsrs r6, 16 + mov r8, r6 +_0805243C: + ldr r0, [r7] + adds r0, 0x88 + ldrb r0, [r0] + cmp r8, r0 + bcc _08052380 + ldr r0, _08052460 + ldr r1, [r0] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08052494 + .align 2, 0 +_08052458: .4byte 0x03002978 +_0805245C: .4byte gUnknown_082165F3 +_08052460: .4byte 0x03004854 +_08052464: + ldr r2, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x14 + ble _080524AE + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _080524AE +_0805247E: + ldr r0, _0805249C + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080524AE + movs r0, 0x5 + bl audio_play + ldr r0, _080524A0 + ldr r1, [r0] +_08052494: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080524AE + .align 2, 0 +_0805249C: .4byte 0x03001770 +_080524A0: .4byte 0x03004854 +_080524A4: + ldr r1, [r2] + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _080524B0 +_080524AE: + movs r0, 0 +_080524B0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8052228 + + thumb_func_start unref_sub_80524BC +unref_sub_80524BC: @ 80524BC + push {r4,lr} + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0805251C + bl SetVBlankCallback + ldr r4, _08052520 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl sub_8071C4C + ldr r0, _08052524 + ldrh r0, [r0, 0x20] + bl SeedRng + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xAA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r1, _08052528 + movs r0, 0xFA + lsls r0, 5 + strh r0, [r1, 0x1A] + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + ldr r0, _0805252C + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805251C: .4byte sub_804E2D8 +_08052520: .4byte gWindowConfig_81E6CE4 +_08052524: .4byte 0x03001770 +_08052528: .4byte 0x03000560 +_0805252C: .4byte sub_8052AF8 + thumb_func_end unref_sub_80524BC + + thumb_func_start sub_8052530 +sub_8052530: @ 8052530 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x98 + ldr r1, _080525C8 + mov r0, sp + bl StringCopy + mov r0, sp + movs r1, 0x2 + movs r2, 0 + bl Print + ldr r4, _080525CC + movs r1, 0x1A + ldrsh r0, [r4, r1] + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + mov r0, sp + movs r1, 0x6 + movs r2, 0 + bl Print + movs r6, 0 + mov r2, sp + adds r2, 0x3 + str r2, [sp, 0x84] + mov r3, sp + adds r3, 0x6 + str r3, [sp, 0x88] + mov r0, sp + adds r0, 0x9 + str r0, [sp, 0x8C] + mov r1, sp + adds r1, 0xC + str r1, [sp, 0x90] + adds r2, 0xC + str r2, [sp, 0x94] + mov r8, r4 + mov r7, sp + ldr r3, _080525D0 + mov r9, r3 + ldr r0, _080525D4 + mov r10, r0 +_0805259E: + mov r1, r8 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, r6 + bne _080525D8 + movs r0, 0xEF + strb r0, [r7] + mov r0, r8 + adds r0, 0x1 + adds r0, r6, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x85 + lsls r0, 16 + lsrs r0, 16 + mov r1, sp + adds r1, 0x1 + bl itemid_copy_name + b _080525F8 + .align 2, 0 +_080525C8: .4byte gUnknown_082165FA +_080525CC: .4byte 0x03000560 +_080525D0: .4byte gBerries +_080525D4: .4byte gUnknown_082165F8 +_080525D8: + mov r0, r8 + adds r0, 0x1 + adds r0, r6, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x85 + lsls r0, 16 + lsrs r0, 16 + mov r1, sp + bl itemid_copy_name + movs r0, 0 + strb r0, [r7, 0x6] + movs r0, 0xFF + strb r0, [r7, 0x7] +_080525F8: + lsls r5, r6, 1 + adds r5, r6 + adds r5, 0x3 + lsls r5, 24 + lsrs r5, 24 + mov r0, sp + movs r1, 0x2 + adds r2, r5, 0 + bl Print + mov r4, r8 + adds r4, 0x1 + adds r4, r6, r4 + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x15] + mov r0, sp + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x16] + ldr r0, [sp, 0x84] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x17] + ldr r0, [sp, 0x88] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x18] + ldr r0, [sp, 0x8C] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x19] + ldr r0, [sp, 0x90] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x1A] + ldr r0, [sp, 0x94] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r2, 0x1 + negs r2, r2 + add r3, sp, 0x80 + strb r2, [r3] + movs r0, 0xFF + strb r0, [r7, 0x11] + mov r0, sp + movs r1, 0x7 + adds r2, r5, 0 + bl Print + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bhi _080526EC + b _0805259E +_080526EC: + mov r1, r8 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _080527A4 + ldr r1, _080527B4 + mov r2, r8 + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + mov r0, sp + bl StringCopy + mov r0, sp + movs r1, 0x2 + movs r2, 0xF + bl Print + mov r3, r8 + ldrb r1, [r3, 0x11] + mov r0, sp + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + ldr r4, _080527B8 + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r0, r8 + ldrb r1, [r0, 0x12] + ldr r0, [sp, 0x84] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r2, r8 + ldrb r1, [r2, 0x13] + ldr r0, [sp, 0x88] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r3, r8 + ldrb r1, [r3, 0x14] + ldr r0, [sp, 0x8C] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r0, r8 + ldrb r1, [r0, 0x15] + ldr r0, [sp, 0x90] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r2, r8 + ldrb r1, [r2, 0x16] + ldr r0, [sp, 0x94] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r1, sp + ldrb r0, [r1, 0x11] + add r3, sp, 0x80 + ldrb r3, [r3] + orrs r0, r3 + strb r0, [r1, 0x11] + mov r0, sp + movs r1, 0x7 + movs r2, 0x11 + bl Print +_080527A4: + add sp, 0x98 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080527B4: .4byte gUnknown_083F7EB8 +_080527B8: .4byte gUnknown_082165F8 + thumb_func_end sub_8052530 + + thumb_func_start sub_80527BC +sub_80527BC: @ 80527BC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x58 + ldr r0, _08052844 + ldrb r0, [r0] + add r6, sp, 0x48 + cmp r0, 0x1 + bne _08052814 + movs r1, 0 + ldr r3, _08052848 + movs r2, 0 +_080527D6: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9 + bls _080527D6 + bl Random + ldr r1, _0805284C + strh r0, [r1] + ldr r1, _08052850 + movs r0, 0 + str r0, [r1] + ldr r1, _08052844 + movs r0, 0x2 + strb r0, [r1] + movs r4, 0 + ldr r2, _08052854 + movs r1, 0 +_08052800: + adds r0, r4, r2 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xC7 + bls _08052800 + ldr r1, _08052858 + movs r0, 0 + strb r0, [r1] +_08052814: + movs r4, 0 + movs r0, 0x1 + mov r8, r0 + ldr r7, _08052858 + ldr r5, _08052850 + ldr r1, _08052854 + mov r9, r1 + ldr r3, _0805285C +_08052824: + str r3, [sp, 0x54] + bl Random + lsls r0, 16 + lsrs r0, 31 + mov r1, r8 + ands r0, r1 + ldr r3, [sp, 0x54] + ldrb r1, [r7] + cmp r0, r1 + bne _08052860 + ldr r0, [r5] + adds r0, 0x1 + str r0, [r5] + b _0805287A + .align 2, 0 +_08052844: .4byte 0x020297dc +_08052848: .4byte 0x03004840 +_0805284C: .4byte 0x03004830 +_08052850: .4byte 0x020297e0 +_08052854: .4byte 0x02000000 +_08052858: .4byte 0x020297e8 +_0805285C: .4byte 0x020297e4 +_08052860: + ldr r2, [r3] + lsls r0, r2, 1 + add r0, r9 + ldr r1, [r5] + strh r1, [r0] + adds r2, 0x1 + str r2, [r3] + movs r0, 0 + str r0, [r5] + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + strb r0, [r7] +_0805287A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x63 + bls _08052824 + mov r1, sp + movs r0, 0xFF + strb r0, [r1] + ldr r0, _08052900 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0x2 + movs r3, 0x8 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r6, 0 + bl StringAppend + ldr r1, _08052904 + mov r0, sp + bl StringAppend + ldr r0, _08052908 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x2 + movs r3, 0x8 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r6, 0 + bl StringAppend + ldr r1, _0805290C + mov r0, sp + bl StringAppend + ldr r4, _08052910 + ldrb r0, [r4] + cmp r0, 0x3 + bne _080528E8 + ldr r0, _08052914 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x2 + movs r3, 0x10 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r6, 0 + bl StringAppend + movs r0, 0 + strb r0, [r4] +_080528E8: + mov r0, sp + movs r1, 0x2 + movs r2, 0xF + bl Print + add sp, 0x58 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08052900: .4byte 0x03004830 +_08052904: .4byte gUnknown_082165F8 +_08052908: .4byte 0x020297e0 +_0805290C: .4byte gUnknown_08216600 +_08052910: .4byte 0x020297dc +_08052914: .4byte 0x020297e4 + thumb_func_end sub_80527BC + + thumb_func_start sub_8052918 +sub_8052918: @ 8052918 + push {r4-r6,lr} + sub sp, 0x4C + ldr r2, _08052A88 + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + ldr r4, _08052A8C + cmp r0, 0 + beq _0805294C + movs r1, 0xFA + lsls r1, 2 + adds r0, r1, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] + lsls r0, 16 + ldr r1, _08052A90 + cmp r0, r1 + ble _08052946 + movs r0, 0xFA + lsls r0, 2 + strh r0, [r4, 0x1A] +_08052946: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_0805294C: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _08052972 + ldr r1, _08052A94 + adds r0, r1, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] + lsls r0, 16 + cmp r0, 0 + bge _0805296C + ldr r0, _08052A98 + strh r0, [r4, 0x1A] +_0805296C: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_08052972: + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08052992 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + bge _0805298C + movs r0, 0x3 + strb r0, [r4] +_0805298C: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_08052992: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080529B4 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080529AE + movs r0, 0 + strb r0, [r4] +_080529AE: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_080529B4: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080529E4 + adds r3, r4, 0 + movs r1, 0 + ldrsb r1, [r3, r1] + adds r5, r3, 0x1 + adds r1, r5 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080529DE + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, r5 + movs r1, 0x2A + strb r1, [r0] +_080529DE: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_080529E4: + ldrh r1, [r2, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08052A16 + ldr r3, _08052A8C + movs r1, 0 + ldrsb r1, [r3, r1] + adds r4, r3, 0x1 + adds r1, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2A + ble _08052A10 + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, r4 + movs r1, 0 + strb r1, [r0] +_08052A10: + ldrb r0, [r3, 0x10] + adds r0, 0x1 + strb r0, [r3, 0x10] +_08052A16: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08052AA0 + movs r6, 0 + movs r4, 0 + ldr r5, _08052A8C +_08052A26: + adds r0, r5, 0x1 + adds r2, r4, r0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x2A + beq _08052A64 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r4, 1 + mov r1, sp + adds r1, r0 + adds r1, 0x4 + movs r0, 0 + ldrsb r0, [r2, r0] + strh r0, [r1] + add r0, sp, 0xC + lsls r1, r4, 4 + adds r0, r1 + movs r1, 0 + ldrsb r1, [r2, r1] + adds r1, 0x85 + lsls r1, 16 + lsrs r1, 16 + bl sub_804E844 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _08052A26 +_08052A64: + cmp r6, 0x1 + bls _08052A9C + add r0, sp, 0xC + adds r1, r5, 0 + adds r1, 0x8 + lsls r2, r6, 24 + lsrs r2, 24 + adds r3, r5, 0 + adds r3, 0x11 + ldrh r4, [r5, 0x1A] + str r4, [sp] + bl sub_8050744 + ldrb r0, [r5, 0x10] + adds r0, 0x1 + strb r0, [r5, 0x10] + b _08052AA0 + .align 2, 0 +_08052A88: .4byte 0x03001770 +_08052A8C: .4byte 0x03000560 +_08052A90: .4byte 0x75300000 +_08052A94: .4byte 0xfffffc18 +_08052A98: .4byte 0x00007530 +_08052A9C: + movs r0, 0xFF + strb r0, [r5, 0x8] +_08052AA0: + ldr r4, _08052AE8 + ldrb r0, [r4, 0x10] + cmp r0, 0 + beq _08052AB0 + bl sub_8052530 + movs r0, 0 + strb r0, [r4, 0x10] +_08052AB0: + ldr r3, _08052AEC + ldrh r1, [r3, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08052AD4 + ldr r2, _08052AF0 + ldrb r0, [r2] + adds r1, r0, 0 + cmp r1, 0 + bne _08052ADC + adds r0, 0x1 + strb r0, [r2] + ldr r0, _08052AF4 + str r1, [r0] + ldrh r0, [r3, 0x20] + bl SeedRng +_08052AD4: + ldr r0, _08052AF0 + ldrb r0, [r0] + cmp r0, 0 + beq _08052AE0 +_08052ADC: + bl sub_80527BC +_08052AE0: + add sp, 0x4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08052AE8: .4byte 0x03000560 +_08052AEC: .4byte 0x03001770 +_08052AF0: .4byte 0x020297dc +_08052AF4: .4byte 0x020297e0 + thumb_func_end sub_8052918 + + thumb_func_start sub_8052AF8 +sub_8052AF8: @ 8052AF8 + push {lr} + bl sub_8052918 + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8052AF8 + + thumb_func_start ShowBerryBlenderRecordWindow +ShowBerryBlenderRecordWindow: @ 8052B14 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x20 + movs r0, 0x6 + movs r1, 0x3 + movs r2, 0x17 + movs r3, 0x10 + bl DrawDefaultWindow + ldr r0, _08052BBC + movs r1, 0x8 + movs r2, 0x4 + bl Print + ldr r0, _08052BC0 + movs r1, 0x8 + movs r2, 0x9 + bl Print + movs r0, 0 + mov r8, r0 + ldr r0, _08052BC4 + movs r7, 0x90 + lsls r7, 20 + ldr r1, _08052BC8 + adds r6, r0, r1 + movs r0, 0 + mov r9, r0 +_08052B50: + ldrh r4, [r6] + adds r0, r4, 0 + movs r1, 0x64 + bl __udivsi3 + adds r1, r0, 0 + mov r0, sp + movs r2, 0x12 + movs r3, 0x1 + bl sub_8072C14 + adds r5, r0, 0 + mov r1, r9 + strb r1, [r5] + movs r0, 0xAD + strb r0, [r5, 0x1] + strb r1, [r5, 0x2] + adds r5, 0x3 + adds r0, r4, 0 + movs r1, 0x64 + bl __umodsi3 + adds r1, r0, 0 + adds r0, r5, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r5, r0, 0 + ldr r1, _08052BCC + bl StringAppend + lsrs r2, r7, 24 + mov r0, sp + movs r1, 0xF + bl Print + movs r0, 0x80 + lsls r0, 18 + adds r7, r0 + adds r6, 0x2 + movs r1, 0x1 + add r8, r1 + mov r0, r8 + cmp r0, 0x2 + ble _08052B50 + add sp, 0x20 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08052BBC: .4byte gUnknown_0842C2E6 +_08052BC0: .4byte gUnknown_0842C30A +_08052BC4: .4byte 0x02025734 +_08052BC8: .4byte 0x0000096c +_08052BCC: .4byte gUnknown_0842D4C5 + thumb_func_end ShowBerryBlenderRecordWindow + + thumb_func_start sub_8052BD0 +sub_8052BD0: @ 8052BD0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _08052C1C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08052BF6 + ldr r0, _08052C20 + bl fanfare_play + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_08052BF6: + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + beq _08052C16 + ldr r0, _08052C24 + ldr r0, [r0] + movs r1, 0xBC + lsls r1, 1 + adds r0, r1 + ldrh r0, [r0] + bl sub_8075474 + adds r0, r5, 0 + bl DestroyTask +_08052C16: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08052C1C: .4byte 0x03004b20 +_08052C20: .4byte 0x0000016f +_08052C24: .4byte 0x03004854 + thumb_func_end sub_8052BD0 diff --git a/iwram_syms.txt b/iwram_syms.txt index 109e02501..954308adb 100644 --- a/iwram_syms.txt +++ b/iwram_syms.txt @@ -8,6 +8,8 @@ gPlayTimeCounterState = 0x300057C; gLocalTime = 0x3004038; +gRngValue = 0x03004818; + gUnknown_3004820 = 0x3004820; word_3004858 = 0x3004858; diff --git a/ld_script.txt b/ld_script.txt index ed3aa449d..567a9768e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -66,6 +66,8 @@ SECTIONS { src/link.o(.text); src/rtc.o(.text); asm/rom3.o(.text); + src/rng.o(.text); + asm/rom_8040EB4.o(.text); src/play_time.o(.text); asm/rom4.o(.text); src/palette.o(.text); diff --git a/src/rng.c b/src/rng.c new file mode 100644 index 000000000..e0a3e6bfb --- /dev/null +++ b/src/rng.c @@ -0,0 +1,14 @@ +#include "global.h" + +extern u32 gRngValue; + +u16 Random(void) +{ + gRngValue = 0x41c64e6d * gRngValue + 0x00006073; + return gRngValue >> 16; +} + +void SeedRng(u16 seed) +{ + gRngValue = seed; +} |