.include "constants/gba_constants.s" .include "constants/species_constants.s" .include "asm/macros.s" .syntax unified .text 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 GetMonData 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 GetBoxMonData 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 GetBoxMonData 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 GetBoxMonData cmp r0, 0 beq _0804136E adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 movs r1, 0xC bl GetBoxMonData 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 GetBoxMonData 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 @ =gSaveBlock2 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 GetMonData lsls r0, 24 lsrs r0, 24 add r4, r8 ldr r2, _08041494 @ =gSaveBlock1 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 adds r4, 0xA0 ldr r0, _08041498 @ =0x00002b4c 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 ZeroMonData bl party_compaction bl CalculatePlayerPartyCount pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08041490: .4byte gSaveBlock2 _08041494: .4byte gSaveBlock1 _08041498: .4byte 0x00002b4c thumb_func_end sub_80413C8 thumb_func_start daycare_send daycare_send: @ 804149C push {lr} ldr r0, _080414B4 @ =gUnknown_03005CE0 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080414B8 @ =gPlayerParty adds r0, r1 ldr r1, _080414BC @ =gSaveBlock1 + 0x2F9C bl sub_80413C8 pop {r0} bx r0 .align 2, 0 _080414B4: .4byte gUnknown_03005CE0 _080414B8: .4byte gPlayerParty _080414BC: .4byte gSaveBlock1 + 0x2F9C 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 GetBoxMonData cmp r0, 0 beq _08041516 adds r0, r5, 0 movs r1, 0xB bl GetBoxMonData 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 ZeroBoxMonData 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 @ =0x0000ffff _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 @ =word_2024E82 ldrh r1, [r0] adds r0, r4, 0 bl DeleteFirstMoveAndGiveMoveToMon _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 CalculateMonStats pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804156C: .4byte word_2024E82 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 @ =gStringVar1 adds r0, r6, 0 bl pokemon_get_nick_ adds r0, r6, 0 movs r1, 0xB bl GetBoxMonData 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 GetMonData cmp r0, 0x64 beq _080415D8 mov r0, sp movs r1, 0x19 bl GetMonData 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 SetMonData mov r0, sp bl sub_804151C _080415D8: ldr r0, _08041644 @ =gPlayerParty 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 ZeroBoxMonData 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 CalculatePlayerPartyCount 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 gStringVar1 _08041644: .4byte gPlayerParty thumb_func_end sub_8041570 thumb_func_start sub_8041648 sub_8041648: @ 8041648 push {lr} ldr r0, _0804165C @ =gSaveBlock1 + 0x2F9C ldr r1, _08041660 @ =gUnknown_0202E8CC ldrb r1, [r1] bl sub_8041570 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0804165C: .4byte gSaveBlock1 + 0x2F9C _08041660: .4byte gUnknown_0202E8CC 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 GetBoxMonData adds r0, r5 str r0, [sp, 0x50] add r2, sp, 0x50 mov r0, sp movs r1, 0x19 bl SetBoxMonData mov r0, sp bl GetLevelFromBoxMonExp 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 GetLevelFromBoxMonExp 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 @ =gStringVar1 adds r0, r6, 0 bl pokemon_get_nick_ ldr r0, _08041724 @ =gStringVar2 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 gStringVar1 _08041724: .4byte gStringVar2 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 @ =gStringVar1 adds r0, r6, 0 bl pokemon_get_nick_ movs r0, 0x64 adds r4, r5, 0 muls r4, r0 adds r4, 0x64 ldr r0, _0804176C @ =gStringVar2 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 gStringVar1 _0804176C: .4byte gStringVar2 thumb_func_end sub_8041728 thumb_func_start sub_8041770 sub_8041770: @ 8041770 push {lr} ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C ldr r1, _08041788 @ =gUnknown_0202E8CC ldrb r1, [r1] bl sub_8041728 ldr r1, _0804178C @ =gUnknown_0202E8CE strh r0, [r1] pop {r0} bx r0 .align 2, 0 _08041784: .4byte gSaveBlock1 + 0x2F9C _08041788: .4byte gUnknown_0202E8CC _0804178C: .4byte gUnknown_0202E8CE thumb_func_end sub_8041770 thumb_func_start sub_8041790 sub_8041790: @ 8041790 lsls r0, 16 lsrs r0, 16 ldr r2, _080417AC @ =gSaveBlock1 ldr r1, _080417B0 @ =0x000030ac adds r3, r2, r1 ldr r1, [r3] adds r1, r0 str r1, [r3] ldr r1, _080417B4 @ =0x000030b0 adds r2, r1 ldr r1, [r2] adds r1, r0 str r1, [r2] bx lr .align 2, 0 _080417AC: .4byte gSaveBlock1 _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 @ =gUnknown_0202E8CC ldrh r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 ldr r4, _080417DC @ =gSaveBlock1 + 0x2F9C adds r0, r4 movs r1, 0xB bl GetBoxMonData cmp r0, 0 bne _080417E0 movs r0, 0 b _080417EC .align 2, 0 _080417D8: .4byte gUnknown_0202E8CC _080417DC: .4byte gSaveBlock1 + 0x2F9C _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 ZeroBoxMonData 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 @ =gEvolutionTable 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 @ =0x0000019b 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 @ =0x0000fffe 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 @ =gSaveBlock1 + 0x2F9C bl sub_80418F0 pop {r0} bx r0 .align 2, 0 _0804194C: .4byte gSaveBlock1 + 0x2F9C thumb_func_end sub_8041940 thumb_func_start sub_8041950 sub_8041950: @ 8041950 push {lr} ldr r0, _0804195C @ =gSaveBlock1 + 0x2F9C bl sub_804191C pop {r0} bx r0 .align 2, 0 _0804195C: .4byte gSaveBlock1 + 0x2F9C 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 @ =_08041A34 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 GetBoxMonData add r2, sp, 0x10 strb r0, [r2] mov r0, r9 movs r1, 0x27 bl SetMonData 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 GetBoxMonData 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 GetBoxMonData 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 GetBoxMonData 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 GetBoxMonData strb r0, [r4] mov r0, r9 movs r1, 0x2B _08041ADA: adds r2, r4, 0 bl SetMonData 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 GetBoxMonData strb r0, [r4] mov r0, r9 movs r1, 0x2C adds r2, r4, 0 bl SetMonData _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 GetMonData lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r5, _08041B44 @ =gEggMoves ldrh r1, [r5] ldr r7, _08041B48 @ =0x00004e20 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 @ =0x00000471 ldr r5, _08041BBC @ =gEggMoves cmp r2, r0 bhi _08041B6E lsls r0, r2, 1 adds r0, r5 ldrh r1, [r0] ldr r7, _08041BC0 @ =0x00004e20 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 @ =0x00004e20 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 @ =gUnknown_03000500 movs r2, 0 ldr r4, _08041CCC @ =gUnknown_030004D8 ldr r3, _08041CD0 @ =gUnknown_030004E0 _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 @ =gUnknown_030004E8 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 @ =gUnknown_03000470 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 GetMonData lsls r0, 16 lsrs r0, 16 ldr r1, _08041CD8 @ =gUnknown_03000470 bl sub_804051C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r6, 0 ldr r1, _08041CCC @ =gUnknown_030004D8 mov r8, r1 _08041C46: adds r5, r6, 0 adds r5, 0xD mov r0, r10 adds r1, r5, 0 bl GetBoxMonData lsls r4, r6, 1 mov r2, r8 adds r1, r4, r2 strh r0, [r1] mov r0, r9 adds r1, r5, 0 bl GetBoxMonData ldr r1, _08041CC8 @ =gUnknown_03000500 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 @ =gUnknown_030004E8 adds r0, r7, 0 bl pokemon_get_eggmoves lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r6, 0 _08041C82: ldr r0, _08041CCC @ =gUnknown_030004D8 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 @ =0x0000ffff _08041C9A: ldr r0, _08041CD4 @ =gUnknown_030004E8 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 GiveMoveToMon lsls r0, 16 lsrs r0, 16 ldr r2, [sp, 0x8] cmp r0, r2 bne _08041CEA ldrh r1, [r4] adds r0, r7, 0 bl DeleteFirstMoveAndGiveMoveToMon b _08041CEA .align 2, 0 _08041CC8: .4byte gUnknown_03000500 _08041CCC: .4byte gUnknown_030004D8 _08041CD0: .4byte gUnknown_030004E0 _08041CD4: .4byte gUnknown_030004E8 _08041CD8: .4byte gUnknown_03000470 _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 @ =gUnknown_030004D8 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 @ =gUnknown_030004D8 adds r4, r2, r0 ldr r6, _08041E18 @ =0x0000ffff mov r9, r0 _08041D16: ldr r3, _08041E1C @ =0x00000121 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 GiveMoveToMon lsls r0, 16 lsrs r0, 16 cmp r0, r6 bne _08041D52 ldrh r1, [r4] adds r0, r7, 0 bl DeleteFirstMoveAndGiveMoveToMon _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 @ =gUnknown_030004E0 mov r10, r3 cmp r0, 0 beq _08041DC6 mov r4, r9 ldr r0, _08041E24 @ =gUnknown_03000500 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 @ =0x0000ffff _08041DDE: ldr r1, _08041E28 @ =gUnknown_03000470 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 GiveMoveToMon lsls r0, 16 lsrs r0, 16 ldr r2, [sp, 0x8] cmp r0, r2 bne _08041E38 ldrh r1, [r4] adds r0, r7, 0 bl DeleteFirstMoveAndGiveMoveToMon b _08041E38 .align 2, 0 _08041E14: .4byte gUnknown_030004D8 _08041E18: .4byte 0x0000ffff _08041E1C: .4byte 0x00000121 _08041E20: .4byte gUnknown_030004E0 _08041E24: .4byte gUnknown_03000500 _08041E28: .4byte gUnknown_03000470 _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 @ =gUnknown_030004E0 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 gUnknown_030004E0 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 @ =gSaveBlock1 + 0x2F9C bl sub_8041E64 pop {r0} bx r0 .align 2, 0 _08041E88: .4byte gSaveBlock1 + 0x2F9C 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 GetBoxMonData lsls r0, 16 lsrs r6, r0, 16 adds r0, r5, 0 adds r0, 0x50 movs r1, 0xC bl GetBoxMonData 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 GetBoxMonData 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 GetBoxMonGender 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 @ =0x00000183 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 GetBoxMonGender 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 SetMonData ldr r0, _08042040 @ =gPlayerParty movs r1, 0xFA lsls r1, 1 adds r0, r1 mov r1, sp movs r2, 0x64 bl memcpy bl party_compaction bl CalculatePlayerPartyCount adds r0, r5, 0 bl sub_8041E64 add sp, 0x6C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08042040: .4byte gPlayerParty 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 CreateMon 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 SetMonData ldr r2, _080420F4 @ =gUnknown_08209AD4 adds r0, r7, 0 movs r1, 0x2 bl SetMonData lsls r2, r5, 3 subs r2, r5 lsls r2, 2 ldr r0, _080420F8 @ =gBaseStats + 0x11 @ egg cycles offset adds r2, r0 adds r0, r7, 0 movs r1, 0x20 bl SetMonData adds r0, r7, 0 movs r1, 0x24 mov r2, r8 bl SetMonData adds r0, r7, 0 movs r1, 0x3 adds r2, r4, 0 bl SetMonData cmp r6, 0 beq _080420D6 add r2, sp, 0x14 movs r0, 0xFD strb r0, [r2] adds r0, r7, 0 movs r1, 0x23 bl SetMonData _080420D6: mov r2, sp adds r2, 0x15 mov r0, r9 strb r0, [r2] adds r0, r7, 0 movs r1, 0x2D bl SetMonData 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 CreateMon 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 SetMonData ldr r2, _08042198 @ =gUnknown_08209AD4 adds r0, r6, 0 movs r1, 0x2 bl SetMonData lsls r2, r5, 3 subs r2, r5 lsls r2, 2 ldr r0, _0804219C @ =gBaseStats + 0x11 @ egg cycles offset adds r2, r0 adds r0, r6, 0 movs r1, 0x20 bl SetMonData adds r0, r6, 0 movs r1, 0x24 mov r2, r9 bl SetMonData adds r0, r6, 0 movs r1, 0x3 adds r2, r4, 0 bl SetMonData 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 @ =gSaveBlock1 + 0x2F9C bl sub_8041FC4 pop {r0} bx r0 .align 2, 0 _080421AC: .4byte gSaveBlock1 + 0x2F9C 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 GetBoxMonData 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 @ =0x0000ffff 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 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _08042286 adds r0, r4, 0 movs r1, 0x20 bl GetMonData str r0, [sp] cmp r0, 0 bne _08042278 ldr r0, _08042274 @ =gUnknown_0202E8CC strh r6, [r0] movs r0, 0x1 b _08042292 .align 2, 0 _08042270: .4byte gPlayerParty _08042274: .4byte gUnknown_0202E8CC _08042278: subs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r1, 0x20 mov r2, sp bl SetMonData _08042286: adds r6, 0x1 _08042288: ldr r0, _0804229C @ =gPlayerPartyCount 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 gPlayerPartyCount thumb_func_end sub_80421B0 thumb_func_start sub_80422A0 sub_80422A0: @ 80422A0 push {lr} ldr r0, _080422B0 @ =gSaveBlock1 + 0x2F9C bl sub_80421B0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080422B0: .4byte gSaveBlock1 + 0x2F9C 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 GetBoxMonData cmp r0, 0 beq _080422FC ldr r1, _0804231C @ =gStringVar1 adds r0, r6, 0 bl pokemon_get_nick_ adds r0, r6, 0 movs r1, 0x3 bl GetBoxMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08042320 @ =gStringVar3 adds r0, r6, 0 movs r1, 0x7 adds r2, r5, 0 bl GetBoxMonData 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 GetBoxMonData cmp r0, 0 beq _08042314 ldr r1, _08042324 @ =gStringVar2 adds r0, r4, 0 bl pokemon_get_nick_ _08042314: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804231C: .4byte gStringVar1 _08042320: .4byte gStringVar3 _08042324: .4byte gStringVar2 thumb_func_end sub_80422C4 thumb_func_start sub_8042328 sub_8042328: @ 8042328 push {r4-r6,lr} ldr r6, _08042354 @ =gUnknown_03005CE0 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _08042358 @ =gPlayerParty adds r0, r4 ldr r1, _0804235C @ =gStringVar1 bl pokemon_get_nick_ ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0xB bl GetBoxMonData lsls r0, 16 lsrs r0, 16 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08042354: .4byte gUnknown_03005CE0 _08042358: .4byte gPlayerParty _0804235C: .4byte gStringVar1 thumb_func_end sub_8042328 thumb_func_start sp0B5_daycare sp0B5_daycare: @ 8042360 push {lr} ldr r0, _0804236C @ =gSaveBlock1 + 0x2F9C bl sub_80422C4 pop {r0} bx r0 .align 2, 0 _0804236C: .4byte gSaveBlock1 + 0x2F9C thumb_func_end sp0B5_daycare thumb_func_start sp0B6_daycare sp0B6_daycare: @ 8042370 push {r4,lr} ldr r4, _08042384 @ =gSaveBlock1 + 0x2F9C 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 gSaveBlock1 + 0x2F9C _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 @ =gBaseStats 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 GetBoxMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x1 bl GetBoxMonData ldr r1, [sp, 0x28] stm r1!, {r0} str r1, [sp, 0x28] adds r0, r4, 0 movs r1, 0 bl GetBoxMonData adds r1, r0, 0 ldrh r0, [r5] bl GetGenderFromSpeciesAndPersonality 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 @ =gSaveBlock1 + 0x2F9C bl daycare_relationship_score lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08042504: .4byte gSaveBlock1 + 0x2F9C 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 @ =gStringVar4 ldr r2, _08042544 @ =gUnknown_08209AC4 lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r0} bx r0 .align 2, 0 _08042540: .4byte gStringVar4 _08042544: .4byte gUnknown_08209AC4 thumb_func_end sp0B9_daycare_relationship_comment thumb_func_start NameHasGenderSymbol NameHasGenderSymbol: @ 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 NameHasGenderSymbol thumb_func_start AppendGenderSymbol AppendGenderSymbol: @ 80425C4 push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _080425E4 movs r1, 0 bl NameHasGenderSymbol lsls r0, 24 cmp r0, 0 bne _08042600 ldr r1, _080425E0 @ =gOtherText_MaleSymbol3 b _08042602 .align 2, 0 _080425E0: .4byte gOtherText_MaleSymbol3 _080425E4: cmp r1, 0xFE bne _08042600 adds r0, r4, 0 movs r1, 0xFE bl NameHasGenderSymbol lsls r0, 24 cmp r0, 0 bne _08042600 ldr r1, _080425FC @ =gOtherText_FemaleSymbol3 b _08042602 .align 2, 0 _080425FC: .4byte gOtherText_FemaleSymbol3 _08042600: ldr r1, _08042610 @ =gOtherText_GenderlessSymbol _08042602: adds r0, r4, 0 bl StringAppend pop {r4} pop {r1} bx r1 .align 2, 0 _08042610: .4byte gOtherText_GenderlessSymbol thumb_func_end AppendGenderSymbol thumb_func_start MonAppendGenderSymbol MonAppendGenderSymbol: @ 8042614 push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 bl GetBoxMonGender adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl AppendGenderSymbol pop {r4} pop {r1} bx r1 thumb_func_end MonAppendGenderSymbol thumb_func_start DaycareLevelMenuGetText DaycareLevelMenuGetText: @ 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 MonAppendGenderSymbol 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 @ =gOtherText_NewLine2 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 @ =gOtherText_CancelAndLv 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 gOtherText_NewLine2 _080426AC: .4byte gOtherText_CancelAndLv thumb_func_end DaycareLevelMenuGetText thumb_func_start DaycareLevelMenuGetLevelText DaycareLevelMenuGetLevelText: @ 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 @ =gOtherText_NewLine2 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 gOtherText_NewLine2 thumb_func_end DaycareLevelMenuGetLevelText thumb_func_start DaycareLevelMenuProcessKeyInput DaycareLevelMenuProcessKeyInput: @ 804272C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, _08042760 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08042768 ldr r0, _08042764 @ =gTasks 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 gMain _08042764: .4byte gTasks _08042768: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804279C ldr r0, _08042798 @ =gTasks 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 PlaySE b _08042816 .align 2, 0 _08042798: .4byte gTasks _0804279C: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080427E8 bl sub_8072DEC movs r0, 0x5 bl PlaySE ldr r3, _080427DC @ =gUnknown_03005CE0 ldr r2, _080427E0 @ =gScriptResult ldr r1, _080427E4 @ =gTasks 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 MenuZeroFillWindowRect bl EnableBothScriptContexts b _08042816 .align 2, 0 _080427DC: .4byte gUnknown_03005CE0 _080427E0: .4byte gScriptResult _080427E4: .4byte gTasks _080427E8: movs r4, 0x2 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08042816 bl sub_8072DEC ldr r0, _0804281C @ =gUnknown_03005CE0 ldr r1, _08042820 @ =gScriptResult 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 MenuZeroFillWindowRect bl EnableBothScriptContexts _08042816: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804281C: .4byte gUnknown_03005CE0 _08042820: .4byte gScriptResult thumb_func_end DaycareLevelMenuProcessKeyInput thumb_func_start ShowDaycareLevelMenu ShowDaycareLevelMenu: @ 8042824 push {r4,lr} sub sp, 0x6C movs r0, 0xF movs r1, 0x6 movs r2, 0x1D movs r3, 0xD bl MenuDrawTextWindow ldr r4, _08042880 @ =gSaveBlock1 + 0x2F9C adds r0, r4, 0 add r1, sp, 0x8 bl DaycareLevelMenuGetText add r0, sp, 0x8 movs r1, 0x10 movs r2, 0x7 bl MenuPrint adds r0, r4, 0 add r1, sp, 0x8 bl DaycareLevelMenuGetLevelText add r0, sp, 0x8 movs r1, 0xCE movs r2, 0x38 movs r3, 0x1 bl MenuPrint_PixelCoords 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 @ =sub_804272C movs r1, 0x3 bl CreateTask add sp, 0x6C pop {r4} pop {r0} bx r0 .align 2, 0 _08042880: .4byte gSaveBlock1 + 0x2F9C _08042884: .4byte DaycareLevelMenuProcessKeyInput thumb_func_end ShowDaycareLevelMenu thumb_func_start ChooseSendDaycareMon ChooseSendDaycareMon: @ 8042888 push {lr} movs r0, 0x6 movs r1, 0 bl OpenPartyMenu ldr r1, _0804289C @ =gMain ldr r0, _080428A0 @ =c2_exit_to_overworld_2_switch str r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0804289C: .4byte gMain _080428A0: .4byte c2_exit_to_overworld_2_switch thumb_func_end ChooseSendDaycareMon thumb_func_start CreatedHatchedMon CreatedHatchedMon: @ 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 GetMonData 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 GetMonData 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 GetMonData mov r8, r0 movs r4, 0 _08042906: adds r1, r4, 0 adds r1, 0x27 adds r0, r6, 0 bl GetMonData 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 GetMonData ldr r1, [sp, 0x38] strb r0, [r1] adds r0, r6, 0 movs r1, 0x8 bl GetMonData ldr r1, [sp, 0x3C] strb r0, [r1] adds r0, r6, 0 movs r1, 0x22 bl GetMonData 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 CreateMon 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 SetMonData 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 SetMonData 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 SetMonData adds r0, r5, 0 movs r1, 0x25 ldr r2, [sp, 0x38] bl SetMonData adds r0, r5, 0 movs r1, 0x8 ldr r2, [sp, 0x3C] bl SetMonData movs r0, 0x78 ldr r1, [sp, 0x40] strb r0, [r1] adds r0, r5, 0 movs r1, 0x20 ldr r2, [sp, 0x40] bl SetMonData adds r0, r5, 0 movs r1, 0x22 ldr r2, [sp, 0x44] bl SetMonData 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 CreatedHatchedMon thumb_func_start AddHatchedMonToParty AddHatchedMonToParty: @ 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 @ =gPlayerParty adds r5, r0 ldr r1, _08042AA0 @ =gEnemyParty adds r0, r5, 0 bl CreatedHatchedMon add r2, sp, 0xC movs r6, 0 strb r6, [r2] adds r0, r5, 0 movs r1, 0x2D bl SetMonData adds r0, r5, 0 movs r1, 0xB bl GetMonData 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 SetMonData 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 @ =gStringVar1 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 SetMonData add r2, sp, 0x10 strh r6, [r2] adds r0, r5, 0 movs r1, 0x24 bl SetMonData bl sav1_map_get_name mov r2, sp adds r2, 0x12 strb r0, [r2] adds r0, r5, 0 movs r1, 0x23 bl SetMonData adds r0, r5, 0 bl sub_8040B1C adds r0, r5, 0 bl CalculateMonStats add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08042A9C: .4byte gPlayerParty _08042AA0: .4byte gEnemyParty _08042AA4: .4byte gStringVar1 thumb_func_end AddHatchedMonToParty thumb_func_start ScriptHatchMon ScriptHatchMon: @ 8042AA8 push {lr} ldr r0, _08042AB8 @ =gUnknown_0202E8CC ldrb r0, [r0] bl AddHatchedMonToParty pop {r0} bx r0 .align 2, 0 _08042AB8: .4byte gUnknown_0202E8CC thumb_func_end ScriptHatchMon 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 @ =gSaveBlock2 adds r1, r5, 0 adds r1, 0x24 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _08042B40 _08042B08: ldr r0, _08042B34 @ =gStringVar1 mov r1, sp bl StringCopy ldr r4, _08042B38 @ =gStringVar2 adds r1, r5, 0 adds r1, 0x24 adds r0, r4, 0 bl StringCopy ldr r0, _08042B3C @ =gStringVar3 adds r1, r6, 0 bl StringCopy adds r0, r4, 0 bl sub_814A568 movs r0, 0x1 b _08042B42 .align 2, 0 _08042B30: .4byte gSaveBlock2 _08042B34: .4byte gStringVar1 _08042B38: .4byte gStringVar2 _08042B3C: .4byte gStringVar3 _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 @ =gSaveBlock1 + 0x2F9C ldr r1, _08042B64 @ =gUnknown_0202E8CC ldrb r1, [r1] bl sub_8042ABC lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08042B60: .4byte gSaveBlock1 + 0x2F9C _08042B64: .4byte gUnknown_0202E8CC thumb_func_end sub_8042B4C thumb_func_start EggHatchCreateMonSprite EggHatchCreateMonSprite: @ 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 @ =gPlayerParty 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 @ =gPlayerParty 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 gPlayerParty _08042BB4: adds r0, r7, 0 movs r1, 0xB bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r7, 0 movs r1, 0 bl GetMonData mov r8, r0 lsls r0, r5, 3 ldr r1, _08042C04 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08042C08 @ =gMonFrontPicCoords lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r3, _08042C0C @ =0x02000000 ldr r6, _08042C10 @ =gUnknown_081FAF4C 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 GetMonSpriteTemplate_803C56C ldr r0, _08042C60 @ =gUnknown_02024E8C movs r1, 0x78 movs r2, 0x46 movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r4, _08042C64 @ =gSprites 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 @ =SpriteCallbackDummy 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 gUnknown_02024E8C _08042C64: .4byte gSprites _08042C68: .4byte SpriteCallbackDummy thumb_func_end EggHatchCreateMonSprite thumb_func_start VBlankCB_EggHatch VBlankCB_EggHatch: @ 8042C6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end VBlankCB_EggHatch thumb_func_start EggHatch EggHatch: @ 8042C80 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _08042CA8 @ =sub_8042CAC 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 Task_EggHatch thumb_func_end EggHatch thumb_func_start Task_EggHatch Task_EggHatch: @ 8042CAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08042CD8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08042CD0 ldr r0, _08042CDC @ =sub_8042CE8 bl SetMainCallback2 ldr r1, _08042CE0 @ =gUnknown_0300485C ldr r0, _08042CE4 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 bl DestroyTask _08042CD0: pop {r4} pop {r0} bx r0 .align 2, 0 _08042CD8: .4byte gPaletteFade _08042CDC: .4byte CB2_EggHatch_0 _08042CE0: .4byte gUnknown_0300485C _08042CE4: .4byte sub_8080990 thumb_func_end Task_EggHatch thumb_func_start CB2_EggHatch_0 CB2_EggHatch_0: @ 8042CE8 push {r4-r7,lr} ldr r0, _08042D04 @ =gMain ldr r1, _08042D08 @ =0x0000043c adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bls _08042CF8 b _08042F6E _08042CF8: lsls r0, 2 ldr r1, _08042D0C @ =_08042D10 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08042D04: .4byte gMain _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 @ =gUnknown_0300481C ldr r0, _08042D78 @ =0x02018000 str r0, [r1] ldr r1, _08042D7C @ =gUnknown_0202E8CC ldrh r1, [r1] strb r1, [r0, 0x4] adds r0, 0x3A strb r2, [r0] bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _08042D80 @ =sub_8042C6C bl SetVBlankCallback ldr r1, _08042D84 @ =gMain ldr r2, _08042D88 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl GetCurrentMapMusic ldr r1, _08042D8C @ =gUnknown_0202E8CE strh r0, [r1] b _08042F6E .align 2, 0 _08042D74: .4byte gUnknown_0300481C _08042D78: .4byte 0x02018000 _08042D7C: .4byte gUnknown_0202E8CC _08042D80: .4byte VBlankCB_EggHatch _08042D84: .4byte gMain _08042D88: .4byte 0x0000043c _08042D8C: .4byte gUnknown_0202E8CE _08042D90: ldr r5, _08042DBC @ =gWindowConfig_81E6F84 adds r0, r5, 0 bl SetUpWindowConfig ldr r4, _08042DC0 @ =gUnknown_0300481C ldr r0, [r4] adds r0, 0x8 adds r1, r5, 0 bl InitWindowFromConfig movs r0, 0x14 bl SetTextWindowBaseTileNum ldr r1, [r4] adds r1, 0x38 strb r0, [r1] ldr r0, [r4] adds r0, 0x8 bl LoadTextWindowGraphics b _08042F04 .align 2, 0 _08042DBC: .4byte gWindowConfig_81E6F84 _08042DC0: .4byte gUnknown_0300481C _08042DC4: ldr r0, _08042DFC @ =gUnknown_08D00000 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r0, _08042E00 @ =gUnknown_08D00524 ldr r4, _08042E04 @ =0x02000000 movs r2, 0x80 lsls r2, 4 adds r1, r4, 0 bl CpuSet ldr r1, _08042E08 @ =0x040000d4 str r4, [r1] ldr r0, _08042E0C @ =0x06002800 str r0, [r1, 0x4] ldr r0, _08042E10 @ =0x80000280 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r0, _08042E14 @ =gUnknown_08D004E0 movs r1, 0 movs r2, 0x20 bl LoadCompressedPalette ldr r1, _08042E18 @ =gMain ldr r2, _08042E1C @ =0x0000043c 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 gMain _08042E1C: .4byte 0x0000043c _08042E20: ldr r0, _08042E34 @ =gUnknown_0820A3B0 bl LoadSpriteSheet ldr r0, _08042E38 @ =gUnknown_0820A3B8 bl LoadSpriteSheet ldr r0, _08042E3C @ =gUnknown_0820A3C0 bl LoadSpritePalette b _08042F04 .align 2, 0 _08042E34: .4byte gUnknown_0820A3B0 _08042E38: .4byte gUnknown_0820A3B8 _08042E3C: .4byte gUnknown_0820A3C0 _08042E40: ldr r0, _08042E64 @ =gSpriteTemplate_820A3C8 movs r1, 0x78 movs r2, 0x4B movs r3, 0x5 bl CreateSprite ldr r2, _08042E68 @ =gUnknown_0300481C ldr r1, [r2] strb r0, [r1] ldr r0, [r2] ldrb r0, [r0, 0x4] bl AddHatchedMonToParty ldr r1, _08042E6C @ =gMain ldr r2, _08042E70 @ =0x0000043c adds r1, r2 b _08042F0A .align 2, 0 _08042E64: .4byte gSpriteTemplate_820A3C8 _08042E68: .4byte gUnknown_0300481C _08042E6C: .4byte gMain _08042E70: .4byte 0x0000043c _08042E74: ldr r0, _08042E84 @ =gUnknown_0300481C ldr r0, [r0] ldrb r2, [r0, 0x4] movs r0, 0 movs r1, 0 bl EggHatchCreateMonSprite b _08042F04 .align 2, 0 _08042E84: .4byte gUnknown_0300481C _08042E88: ldr r4, _08042EA4 @ =gUnknown_0300481C ldr r0, [r4] ldrb r2, [r0, 0x4] movs r0, 0 movs r1, 0x1 bl EggHatchCreateMonSprite ldr r1, [r4] strb r0, [r1, 0x1] ldr r1, _08042EA8 @ =gMain ldr r2, _08042EAC @ =0x0000043c adds r1, r2 b _08042F0A .align 2, 0 _08042EA4: .4byte gUnknown_0300481C _08042EA8: .4byte gMain _08042EAC: .4byte 0x0000043c _08042EB0: ldr r0, _08042F14 @ =REG_BG2CNT ldr r2, _08042F18 @ =0x00004c06 adds r1, r2, 0 strh r1, [r0] ldr r0, _08042F1C @ =gUnknown_0820C9F8 movs r1, 0x10 movs r2, 0xA0 bl LoadPalette ldr r3, _08042F20 @ =gUnknown_0820CA98 ldr r4, _08042F24 @ =0x06004000 movs r5, 0x98 lsls r5, 5 ldr r1, _08042F28 @ =0x040000d4 ldr r6, _08042F2C @ =0x80000800 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 @ =gUnknown_0820F798 ldr r2, _08042F34 @ =0x06006000 ldr r0, _08042F28 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08042F2C @ =0x80000800 str r1, [r0, 0x8] ldr r0, [r0, 0x8] _08042F04: ldr r1, _08042F38 @ =gMain ldr r0, _08042F3C @ =0x0000043c adds r1, r0 _08042F0A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08042F6E .align 2, 0 _08042F14: .4byte REG_BG2CNT _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 gMain _08042F3C: .4byte 0x0000043c _08042F40: ldr r1, _08042F74 @ =REG_BG1CNT ldr r2, _08042F78 @ =0x00000501 adds r0, r2, 0 strh r0, [r1] ldr r0, _08042F7C @ =REG_BG0HOFS 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 @ =sub_804300C bl SetMainCallback2 ldr r0, _08042F84 @ =gUnknown_0300481C ldr r0, [r0] strb r4, [r0, 0x2] _08042F6E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042F74: .4byte REG_BG1CNT _08042F78: .4byte 0x00000501 _08042F7C: .4byte REG_BG0HOFS _08042F80: .4byte CB2_EggHatch_1 _08042F84: .4byte gUnknown_0300481C thumb_func_end CB2_EggHatch_0 thumb_func_start EggHatchSetMonNickname EggHatchSetMonNickname: @ 8042F88 push {lr} ldr r0, _08042FA8 @ =gUnknown_0202E8CC ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08042FAC @ =gPlayerParty adds r0, r1 ldr r2, _08042FB0 @ =gStringVar3 movs r1, 0x2 bl SetMonData ldr r0, _08042FB4 @ =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08042FA8: .4byte gUnknown_0202E8CC _08042FAC: .4byte gPlayerParty _08042FB0: .4byte gStringVar3 _08042FB4: .4byte c2_exit_to_overworld_2_switch thumb_func_end EggHatchSetMonNickname thumb_func_start Task_EggHatchPlayBGM Task_EggHatchPlayBGM: @ 8042FB8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08043004 @ =gTasks 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 StopMapMusic _08042FD4: movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08042FE4 movs r0, 0xBC lsls r0, 1 bl PlayBGM _08042FE4: movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x3C ble _08042FF8 ldr r0, _08043008 @ =0x00000179 bl PlayBGM 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 gTasks _08043008: .4byte 0x00000179 thumb_func_end Task_EggHatchPlayBGM thumb_func_start CB2_EggHatch_1 CB2_EggHatch_1: @ 804300C push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 ldr r1, _08043030 @ =gUnknown_0300481C 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 @ =_08043038 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08043030: .4byte gUnknown_0300481C _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 @ =gUnknown_0300481C ldr r1, [r0] ldrb r0, [r1, 0x2] adds r0, 0x1 strb r0, [r1, 0x2] ldr r0, _0804309C @ =c3_080472E4 movs r1, 0x5 bl CreateTask b _080432BA .align 2, 0 _08043098: .4byte gUnknown_0300481C _0804309C: .4byte Task_EggHatchPlayBGM _080430A0: ldr r0, _080430BC @ =gPaletteFade 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 gPaletteFade _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 @ =gSprites 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 @ =sub_80432E4 str r1, [r0] b _080432BA .align 2, 0 _080430F0: .4byte gSprites _080430F4: .4byte SpriteCB_Egg_0 _080430F8: ldr r2, _0804311C @ =gSprites 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 @ =SpriteCallbackDummy 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 gSprites _08043120: .4byte SpriteCallbackDummy _08043124: ldr r0, [r5] ldrb r1, [r0, 0x4] movs r0, 0x64 muls r0, r1 ldr r1, _08043150 @ =gPlayerParty adds r0, r1 ldr r1, _08043154 @ =gStringVar1 bl pokemon_get_nick ldr r4, _08043158 @ =gStringVar4 ldr r1, _0804315C @ =gOtherText_HatchedFromEgg adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 bl EggHatchPrintMessage2 ldr r0, _08043160 @ =0x00000173 bl PlayFanfare ldr r1, [r5] b _0804329C .align 2, 0 _08043150: .4byte gPlayerParty _08043154: .4byte gStringVar1 _08043158: .4byte gStringVar4 _0804315C: .4byte gOtherText_HatchedFromEgg _08043160: .4byte 0x00000173 _08043164: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 bne _08043170 b _080432BA _08043170: b _08043298 _08043172: bl IsFanfareTaskInactive 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 @ =gPlayerParty adds r0, r1 ldr r1, _080431AC @ =gStringVar1 bl pokemon_get_nick ldr r4, _080431B0 @ =gStringVar4 ldr r1, _080431B4 @ =gOtherText_NickHatchPrompt adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 bl EggHatchPrintMessage1 ldr r1, [r5] b _0804329C .align 2, 0 _080431A8: .4byte gPlayerParty _080431AC: .4byte gStringVar1 _080431B0: .4byte gStringVar4 _080431B4: .4byte gOtherText_NickHatchPrompt _080431B8: bl EggHatchUpdateWindowText lsls r0, 24 cmp r0, 0 beq _080432BA movs r0, 0x16 movs r1, 0x8 movs r2, 0x1B movs r3, 0xD bl MenuDrawTextWindow movs r0, 0x16 movs r1, 0x8 movs r2, 0x4 bl InitYesNoMenu b _08043298 _080431DA: bl ProcessMenuInputNoWrap_ 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 @ =gUnknown_0300481C 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 @ =gPlayerParty adds r0, r6 ldr r1, _08043280 @ =gStringVar3 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 GetMonData 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 GetMonGender 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 GetMonData str r0, [sp] ldr r0, _08043284 @ =sub_8042F88 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 gUnknown_0300481C _0804327C: .4byte gPlayerParty _08043280: .4byte gStringVar3 _08043284: .4byte EggHatchSetMonNickname _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 @ =gUnknown_0300481C ldr r1, [r0] _0804329C: ldrb r0, [r1, 0x2] adds r0, 0x1 strb r0, [r1, 0x2] b _080432BA .align 2, 0 _080432A4: .4byte gUnknown_0300481C _080432A8: ldr r0, _080432DC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080432BA ldr r0, _080432E0 @ =c2_exit_to_overworld_2_switch 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 gPaletteFade _080432E0: .4byte c2_exit_to_overworld_2_switch thumb_func_end CB2_EggHatch_1 thumb_func_start SpriteCB_Egg_0 SpriteCB_Egg_0: @ 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 @ =sub_804333C str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x2E] b _08043334 .align 2, 0 _08043300: .4byte SpriteCB_Egg_1 _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 Sin strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0xF bne _08043334 movs r0, 0x17 bl PlaySE adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim bl CreateRandomEggShardSprite _08043334: pop {r4} pop {r0} bx r0 thumb_func_end SpriteCB_Egg_0 thumb_func_start SpriteCB_Egg_1 SpriteCB_Egg_1: @ 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 @ =sub_80433A0 str r0, [r4, 0x1C] strh r1, [r4, 0x2E] strh r1, [r4, 0x32] b _08043398 .align 2, 0 _08043368: .4byte SpriteCB_Egg_2 _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 Sin strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0xF bne _08043398 movs r0, 0x17 bl PlaySE adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim _08043398: pop {r4} pop {r0} bx r0 thumb_func_end SpriteCB_Egg_1 thumb_func_start SpriteCB_Egg_2 SpriteCB_Egg_2: @ 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 @ =sub_8043460 str r0, [r4, 0x1C] strh r6, [r4, 0x2E] ldr r5, _08043408 @ =gUnknown_0300481C ldr r0, [r5] ldrb r1, [r0, 0x4] movs r0, 0x64 muls r0, r1 ldr r1, _0804340C @ =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 ldr r4, _08043410 @ =gSprites 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 @ =gMonFrontPicCoords lsrs r0, 14 adds r0, r2 ldrb r0, [r0, 0x1] strh r0, [r1, 0x26] b _0804345A .align 2, 0 _08043404: .4byte SpriteCB_Egg_3 _08043408: .4byte gUnknown_0300481C _0804340C: .4byte gPlayerParty _08043410: .4byte gSprites _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 Sin strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0xF bne _0804344C movs r0, 0x17 bl PlaySE adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim bl CreateRandomEggShardSprite bl CreateRandomEggShardSprite _0804344C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1E bne _0804345A movs r0, 0x17 bl PlaySE _0804345A: pop {r4-r6} pop {r0} bx r0 thumb_func_end SpriteCB_Egg_2 thumb_func_start SpriteCB_Egg_3 SpriteCB_Egg_3: @ 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 @ =sub_8043484 str r0, [r1, 0x1C] movs r0, 0 strh r0, [r1, 0x2E] _0804347A: pop {r0} bx r0 .align 2, 0 _08043480: .4byte SpriteCB_Egg_4 thumb_func_end SpriteCB_Egg_3 thumb_func_start SpriteCB_Egg_4 SpriteCB_Egg_4: @ 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 @ =0x0000ffff 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 CreateRandomEggShardSprite 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 @ =gPaletteFade 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 PlaySE adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _08043500 @ =sub_8043504 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 gPaletteFade _08043500: .4byte SpriteCB_Egg_5 thumb_func_end SpriteCB_Egg_4 thumb_func_start SpriteCB_Egg_5 SpriteCB_Egg_5: @ 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 @ =gSprites ldr r3, _08043598 @ =gUnknown_0300481C 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 @ =0x0000ffff 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 @ =gSprites ldr r0, _08043598 @ =gUnknown_0300481C 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 @ =SpriteCallbackDummy 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 gSprites _08043598: .4byte gUnknown_0300481C _0804359C: .4byte 0x0000ffff _080435A0: .4byte SpriteCallbackDummy thumb_func_end SpriteCB_Egg_5 thumb_func_start SpriteCB_EggShard SpriteCB_EggShard: @ 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 SpriteCB_EggShard thumb_func_start CreateRandomEggShardSprite CreateRandomEggShardSprite: @ 80435FC push {r4-r6,lr} sub sp, 0x8 ldr r3, _0804364C @ =gEggShardVelocities ldr r0, _08043650 @ =gUnknown_0300481C 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 CreateEggShardSprite add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804364C: .4byte gEggShardVelocities _08043650: .4byte gUnknown_0300481C thumb_func_end CreateRandomEggShardSprite thumb_func_start CreateEggShardSprite CreateEggShardSprite: @ 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 @ =gSpriteTemplate_820A418 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 @ =gSprites 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 gSprites thumb_func_end CreateEggShardSprite thumb_func_start EggHatchPrintMessage1 EggHatchPrintMessage1: @ 80436D4 push {lr} sub sp, 0x4 adds r1, r0, 0 ldr r0, _080436F8 @ =gUnknown_0300481C 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 gUnknown_0300481C thumb_func_end EggHatchPrintMessage1 thumb_func_start EggHatchPrintMessage2 EggHatchPrintMessage2: @ 80436FC push {lr} sub sp, 0x4 adds r1, r0, 0 ldr r0, _08043720 @ =gUnknown_0300481C 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 gUnknown_0300481C thumb_func_end EggHatchPrintMessage2 thumb_func_start EggHatchUpdateWindowText EggHatchUpdateWindowText: @ 8043724 push {lr} ldr r0, _08043738 @ =gUnknown_0300481C ldr r0, [r0] adds r0, 0x8 bl sub_80035AC lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08043738: .4byte gUnknown_0300481C thumb_func_end EggHatchUpdateWindowText 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 @ =gSpriteTemplate_820A4EC 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 @ =gSprites 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 @ =0x000003ff adds r0, r4, 0 ands r1, r0 ldr r0, _080439A8 @ =0xfffffc00 ands r0, r3 orrs r0, r1 strh r0, [r2, 0x4] b _080439F2 .align 2, 0 _0804399C: .4byte gSpriteTemplate_820A4EC _080439A0: .4byte gSprites _080439A4: .4byte 0x000003ff _080439A8: .4byte 0xfffffc00 _080439AC: ldr r4, _08043A14 @ =gSpriteTemplate_820A51C 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 @ =gSprites 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 @ =0x000003ff adds r0, r5, 0 ands r1, r0 ldr r0, _08043A20 @ =0xfffffc00 ands r0, r3 orrs r0, r1 strh r0, [r2, 0x4] movs r0, 0x2 str r0, [sp] _080439F2: ldr r2, _08043A18 @ =gSprites 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 @ =sub_8043D5C str r1, [r0] b _08043B50 .align 2, 0 _08043A14: .4byte gSpriteTemplate_820A51C _08043A18: .4byte gSprites _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 @ =gSpriteTemplate_820A4EC 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 @ =gSprites 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 @ =0x000003ff adds r0, r5, 0 ands r1, r0 ldr r0, _08043AC4 @ =0xfffffc00 mov r5, r8 ands r0, r5 orrs r0, r1 strh r0, [r3, 0x4] adds r4, 0x1C adds r2, r4 ldr r0, _08043AC8 @ =sub_8043D5C str r0, [r2] movs r0, 0x1 b _08043B4E .align 2, 0 _08043AB8: .4byte gSpriteTemplate_820A4EC _08043ABC: .4byte gSprites _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 @ =gSpriteTemplate_820A51C 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 @ =gSprites 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 @ =0x000003ff adds r0, r5, 0 ands r1, r0 ldr r0, _08043C20 @ =0xfffffc00 mov r5, r8 ands r0, r5 orrs r0, r1 strh r0, [r3, 0x4] adds r4, 0x1C adds r2, r4 ldr r0, _08043C24 @ =sub_8043D5C str r0, [r2] movs r0, 0x2 _08043B4E: str r0, [sp] _08043B50: ldr r0, _08043C28 @ =gUnknown_02024A72 add r0, r10 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, _08043C2C @ =gSpriteTemplate_820A56C 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 @ =gSprites 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 @ =gSubspriteTables_820A684 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 @ =0x06010000 adds r1, r2 ldr r2, _08043C38 @ =REG_BG0HOFS 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 gSprites _08043C1C: .4byte 0x000003ff _08043C20: .4byte 0xfffffc00 _08043C24: .4byte sub_8043D5C _08043C28: .4byte gUnknown_02024A72 _08043C2C: .4byte gSpriteTemplate_820A56C _08043C30: .4byte gSubspriteTables_820A684 _08043C34: .4byte 0x06010000 _08043C38: .4byte REG_BG0HOFS 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 @ =gSpriteTemplate_820A54C 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 @ =gSprites 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 @ =0x000003ff adds r1, r7, 0 ands r2, r1 ldr r1, _08043CD4 @ =0xfffffc00 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 @ =sub_8043D5C 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 gSprites _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 @ =gUnknown_08D1216C 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 @ =gSprites 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 gSprites _08043D1C: ldr r2, _08043D2C @ =gSprites 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 gSprites _08043D30: ldr r2, _08043D58 @ =gSprites 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 gSprites 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 @ =gSprites 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 gSprites 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 @ =0x02017850 adds r4, r0 strb r1, [r4] str r2, [r4, 0x4] str r3, [r4, 0x8] str r5, [r4, 0xC] ldr r0, _08043DAC @ =0xffff8000 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 @ =gSprites 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 gSprites 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 @ =gSprites 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 gSprites 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 @ =gSprites 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 gSprites 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 @ =gSprites 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 gSprites 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 @ =gUnknown_02024A68 mov r8, r1 ldrb r2, [r1] cmp r6, r2 bge _08043F2C ldr r1, _08043F3C @ =gSprites mov r12, r1 movs r1, 0x3 ands r0, r1 lsls r5, r0, 2 movs r7, 0xD negs r7, r7 ldr r2, _08043F40 @ =gUnknown_03004340 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 gUnknown_02024A68 _08043F3C: .4byte gSprites _08043F40: .4byte gUnknown_03004340 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 @ =gUnknown_03004340 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 gUnknown_03004340 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 @ =gUnknown_0820A81C mov r0, sp movs r2, 0x1E bl memcpy bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _08044010 ldr r1, _08044004 @ =gSprites 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 @ =gUnknown_0820A80C cmp r0, 0 bne _0804402E ldr r7, _0804400C @ =gUnknown_0820A804 b _0804402E .align 2, 0 _08044000: .4byte gUnknown_0820A81C _08044004: .4byte gSprites _08044008: .4byte gUnknown_0820A80C _0804400C: .4byte gUnknown_0820A804 _08044010: ldr r1, _08044040 @ =gSprites 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 @ =gUnknown_0820A80C cmp r0, 0 bne _0804402E ldr r7, _08044048 @ =gUnknown_0820A814 _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 gSprites _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 @ =gSprites adds r0, r4, r5 lsls r0, 2 adds r6, r0, r1 ldr r5, _080440E4 @ =0x02000020 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 @ =REG_BG0CNT 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 gSprites _080440E4: .4byte 0x02000020 _080440E8: .4byte REG_BG0CNT 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 @ =gUnknown_0820A864 mov r0, sp movs r2, 0x14 bl memcpy ldr r1, _08044148 @ =gSprites 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 gSprites _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 @ =gUnknown_0820A848 cmp r0, 0 bne _0804416A ldr r4, _0804418C @ =gUnknown_0820A83C _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 @ =gUnknown_0820A85C cmp r0, 0 bne _080441A4 ldr r4, _08044200 @ =gUnknown_0820A854 _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 @ =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r6, r0, r1 adds r7, r4, 0 ldr r5, _08044208 @ =0x02000020 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 @ =REG_BG0CNT 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 gSprites _08044208: .4byte 0x02000020 _0804420C: .4byte REG_BG0CNT 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 @ =gUnknown_0820A89C mov r0, sp movs r2, 0x14 bl memcpy ldr r1, _08044280 @ =gSprites 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 @ =0x02017800 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 @ =gUnknown_0820A87C 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 gSprites _08044284: .4byte 0x02017800 _08044288: .4byte gUnknown_0820A87C _0804428C: ldr r7, _08044324 @ =gUnknown_0820A894 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 @ =0x06010000 adds r1, r2 ldr r2, _0804432C @ =REG_BG0CNT bl CpuSet _080442CE: ldr r6, _08044330 @ =gSprites 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 @ =0x02000020 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 @ =REG_BG0CNT 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 REG_BG0CNT _08044330: .4byte gSprites _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 @ =gUnknown_0820A864 mov r0, sp movs r2, 0x14 bl memcpy ldr r1, _080443D0 @ =gSprites 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 @ =0x02000520 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 @ =gNatureNames 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 gSprites _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 @ =REG_BG0CNT 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 @ =gSprites ldr r2, _080444F8 @ =REG_BG0CNT 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 @ =0x06010000 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 @ =0x06010000 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 @ =gSprites 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 @ =0x02000000 ldr r2, _08044508 @ =0x00016089 adds r0, r4, r2 ldrb r1, [r0] mov r0, sp adds r0, 0x6 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r3, _0804450C @ =0x00016088 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 @ =0x02000020 _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 @ =0x06010000 adds r1, r0 adds r0, r4, 0 ldr r2, _080444F8 @ =REG_BG0CNT bl CpuSet b _0804452A .align 2, 0 _080444F8: .4byte REG_BG0CNT _080444FC: .4byte gSprites _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 @ =0x060100c0 adds r1, r2 adds r0, r4, 0 ldr r2, _08044548 @ =REG_BG0CNT 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 REG_BG0CNT 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 @ =gUnknown_02024A68 ldrb r0, [r0] cmp r8, r0 blt _08044566 b _080447E4 _08044566: ldr r1, _08044670 @ =gSprites mov r9, r1 movs r2, 0x64 mov r10, r2 ldr r7, _08044674 @ =gUnknown_02024A6A _08044570: ldr r0, _08044678 @ =gUnknown_03004340 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 @ =SpriteCallbackDummy 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 @ =0x02017800 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 @ =gUnknown_020239F8 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 @ =0x06010000 adds r1, r0 mov r0, sp ldr r2, _0804468C @ =0x05000040 bl CpuSet ldrb r4, [r5] ldrh r0, [r7] mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r2, _08044690 @ =gPlayerParty adds r0, r2 movs r1, 0x39 bl GetMonData 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 @ =gPlayerParty b _08044766 .align 2, 0 _0804466C: .4byte gUnknown_02024A68 _08044670: .4byte gSprites _08044674: .4byte gUnknown_02024A6A _08044678: .4byte gUnknown_03004340 _0804467C: .4byte SpriteCallbackDummy _08044680: .4byte 0x02017800 _08044684: .4byte gUnknown_020239F8 _08044688: .4byte 0x06010000 _0804468C: .4byte 0x05000040 _08044690: .4byte gPlayerParty _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 @ =gPlayerParty 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 @ =0x06010680 adds r1, r2 ldr r2, _080446D8 @ =REG_BG0CNT bl CpuSet b _080447BE .align 2, 0 _080446D0: .4byte gPlayerParty _080446D4: .4byte 0x06010680 _080446D8: .4byte REG_BG0CNT _080446DC: cmp r6, 0x1 bne _0804478C ldr r0, _08044704 @ =gUnknown_020239F8 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 @ =gEnemyParty adds r1, r2 bl sub_8044338 b _080447BE .align 2, 0 _08044704: .4byte gUnknown_020239F8 _08044708: .4byte gEnemyParty _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 @ =0x06010000 adds r1, r6 mov r0, sp ldr r2, _08044784 @ =0x05000040 bl CpuSet ldrb r4, [r5] ldrh r0, [r7] mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r2, _08044788 @ =gEnemyParty adds r0, r2 movs r1, 0x39 bl GetMonData 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 @ =gEnemyParty _08044766: adds r0, r1 movs r1, 0x3A bl GetMonData 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 gEnemyParty _0804478C: ldrb r0, [r5] bl draw_status_ailment_maybe ldrb r0, [r5] ldrh r1, [r7] movs r6, 0x64 muls r1, r6 ldr r4, _080447F4 @ =gEnemyParty adds r1, r4 movs r2, 0x5 bl sub_8045A5C ldr r0, _080447F8 @ =gUnknown_020239F8 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 @ =gUnknown_03004340 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 @ =gUnknown_02024A68 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 gEnemyParty _080447F8: .4byte gUnknown_020239F8 _080447FC: .4byte gUnknown_03004340 _08044800: .4byte gUnknown_02024A68 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 @ =0x0000fffb 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 @ =0x0000ff9c mov r8, r3 b _08044882 .align 2, 0 _08044874: .4byte 0x0000ff9c _08044878: movs r7, 0x1 movs r1, 0x68 movs r2, 0x28 ldr r5, _08044930 @ =0x0000ff9c mov r8, r5 _08044882: movs r5, 0x5 _08044884: movs r6, 0 str r6, [sp, 0x14] lsls r4, r7, 3 ldr r0, _08044934 @ =gUnknown_0820A754 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 @ =0x0000ffff 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 @ =gUnknown_0820A784 adds r0, r4, r0 bl LoadSpriteSheet ldr r0, _08044940 @ =gUnknown_0820A764 adds r0, r4, r0 bl LoadSpritePalette ldr r0, _08044944 @ =gUnknown_0820A774 adds r0, r4, r0 bl LoadSpritePalette mov r1, r9 adds r0, r1, r7 lsls r0, 3 ldr r1, _08044948 @ =gSpriteTemplate_820A7A4 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 @ =gSprites adds r4, r0, r1 ldr r1, _08044950 @ =gSubspriteTables_820A6E4 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 gSprites _08044950: .4byte gSubspriteTables_820A6E4 _08044954: ldrh r0, [r4, 0x20] adds r0, 0x60 strh r0, [r4, 0x20] _0804495A: movs r6, 0 ldr r1, _08044A04 @ =gSprites 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 @ =gSpriteTemplate_820A7D4 ldr r5, [sp, 0x24] ldr r1, _08044A0C @ =0xfffc0000 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 @ =gSprites + 0x1C adds r1, r2 ldr r0, _08044A14 @ =sub_8045180 str r0, [r1] _080449A0: ldr r5, _08044A04 @ =gSprites 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 gSprites _08044A08: .4byte gSpriteTemplate_820A7D4 _08044A0C: .4byte 0xfffc0000 _08044A10: .4byte gSprites + 0x1C _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 @ =0x0000ff88 _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 @ =gUnknown_020239F8 mov r10, r5 ldr r0, _08044ACC @ =0x0000ffff mov r9, r0 ldr r7, _08044AD0 @ =gSprites ldr r1, _08044AD4 @ =0x000003ff mov r12, r1 ldr r2, _08044AD8 @ =0xfffffc00 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 gUnknown_020239F8 _08044ACC: .4byte 0x0000ffff _08044AD0: .4byte gSprites _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 @ =gUnknown_020239F8 mov r10, r1 ldr r2, _08044BA8 @ =0x0000ffff mov r9, r2 ldr r7, _08044BAC @ =gSprites ldr r3, _08044BB0 @ =0x000003ff mov r12, r3 ldr r5, _08044BB4 @ =0xfffffc00 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 gUnknown_020239F8 _08044BA8: .4byte 0x0000ffff _08044BAC: .4byte gSprites _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 @ =TaskDummy movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r2, _08044C9C @ =gTasks 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 PlaySE12WithPanning 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 gTasks 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 @ =gTasks 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 @ =gSprites 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 @ =REG_BLDCNT 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 @ =gSprites 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 @ =sub_8045110 str r1, [r0] ldr r2, _08044DB8 @ =gSprites mov r12, r2 b _08044DFA .align 2, 0 _08044DB4: .4byte gTasks _08044DB8: .4byte gSprites _08044DBC: .4byte REG_BLDCNT _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 @ =sub_8045110 str r1, [r0] ldr r0, _08044E40 @ =gSprites 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 @ =sub_8045048 str r1, [r3] ldr r1, _08044E48 @ =gSubspriteTables_820A6EC bl SetSubspriteTables ldr r1, _08044E4C @ =gTasks ldr r0, [sp, 0xC] add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _08044E50 @ =sub_8044E74 b _08044E5E .align 2, 0 _08044E3C: .4byte sub_8045110 _08044E40: .4byte gSprites _08044E44: .4byte sub_8045048 _08044E48: .4byte gSubspriteTables_820A6EC _08044E4C: .4byte gTasks _08044E50: .4byte sub_8044E74 _08044E54: ldr r0, [sp, 0xC] add r0, r8 lsls r0, 3 adds r0, r7 ldr r1, _08044E70 @ =sub_8044F70 _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 @ =gTasks 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 @ =REG_BLDALPHA 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 @ =sub_8044ECC str r0, [r3] _08044EBA: pop {r0} bx r0 .align 2, 0 _08044EC0: .4byte gTasks _08044EC4: .4byte REG_BLDALPHA _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 @ =gTasks 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 @ =gSprites 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 gTasks _08044F48: .4byte gSprites _08044F4C: movs r0, 0x3 negs r0, r0 cmp r2, r0 bne _08044F62 ldr r0, _08044F6C @ =REG_BLDCNT 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 REG_BLDCNT 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 @ =gTasks 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 @ =REG_BLDALPHA movs r0, 0x10 subs r0, r2 lsls r0, 8 orrs r2, r0 strh r2, [r1] b _08045022 .align 2, 0 _08044FA4: .4byte gTasks _08044FA8: .4byte REG_BLDALPHA _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 @ =gSprites 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 gSprites _0804500C: movs r0, 0x3 negs r0, r0 cmp r1, r0 bne _08045022 ldr r0, _0804502C @ =REG_BLDCNT 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 REG_BLDCNT 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 @ =0x0000fff0 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 PlaySE2WithPanning b _08045102 _080450F8: lsls r1, 24 asrs r1, 24 movs r0, 0x73 bl PlaySE1WithPanning _08045102: ldr r0, _0804510C @ =SpriteCallbackDummy 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 @ =0x0000fff0 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 @ =SpriteCallbackDummy 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 @ =gSprites 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 gSprites 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 @ =gUnknown_020238CC ldr r1, _0804523C @ =gUnknown_0820A8B0 adds r0, r4, 0 bl StringCopy adds r0, r7, 0 movs r1, 0x2 mov r2, sp bl GetMonData 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 GetMonGender lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0 movs r1, 0xB bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 movs r1, 0x3 bl GetMonData 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 gUnknown_020238CC _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 @ =gSprites 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 @ =0x02000520 adds r5, r1, r2 ldr r0, _080452E0 @ =gUnknown_020238CC 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 GetMonData str r4, [sp, 0xC] cmp r0, 0x1 bne _08045338 adds r0, r7, 0 movs r1, 0x2D bl GetMonData 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 gSprites _080452DC: .4byte 0x02000520 _080452E0: .4byte gUnknown_020238CC _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 @ =REG_BG0CNT 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 @ =REG_BG0CNT bl CpuSet adds r4, 0x40 subs r6, 0x1 cmp r6, 0 bne _08045344 _0804535A: ldr r1, _080453CC @ =gSprites 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 @ =gUnknown_0820A8B4 mov r0, r10 cmp r0, 0 beq _08045438 mov r8, r6 mov r9, r1 ldr r7, _080453C8 @ =REG_BG0CNT 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 REG_BG0CNT _080453CC: .4byte gSprites _080453D0: .4byte gUnknown_0820A8B4 _080453D4: ldr r1, _08045448 @ =gSprites 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 @ =gUnknown_0820A8DC cmp r0, 0 bne _080453F2 ldr r1, _08045450 @ =gUnknown_0820A904 _080453F2: mov r2, r10 cmp r2, 0 beq _08045438 mov r8, r4 mov r9, r1 ldr r7, _08045454 @ =REG_BG0CNT 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 gSprites _0804544C: .4byte gUnknown_0820A8DC _08045450: .4byte gUnknown_0820A904 _08045454: .4byte REG_BG0CNT 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 @ =gUnknown_020239F8 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 @ =gSprites 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 @ =gUnknown_02024A6A lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08045500 @ =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData 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 @ =0x06010000 adds r1, r2 ldr r2, _08045508 @ =REG_BG0CNT bl CpuSet b _0804552E .align 2, 0 _080454F4: .4byte gUnknown_020239F8 _080454F8: .4byte gSprites _080454FC: .4byte gUnknown_02024A6A _08045500: .4byte gEnemyParty _08045504: .4byte 0x06010000 _08045508: .4byte REG_BG0CNT _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 @ =0x06010000 adds r1, r0 ldr r2, _0804553C @ =0x05000008 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 @ =gSprites 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 @ =gUnknown_02024A6A lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080455AC @ =gPlayerParty adds r0, r1 movs r1, 0x37 bl GetMonData 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 gSprites _080455A8: .4byte gUnknown_02024A6A _080455AC: .4byte gPlayerParty _080455B0: ldr r1, _080455EC @ =gUnknown_02024A6A lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080455F0 @ =gEnemyParty adds r0, r1 movs r1, 0x37 bl GetMonData 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 gUnknown_02024A6A _080455F0: .4byte gEnemyParty _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 @ =gSprites 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 @ =0x06010000 adds r1, r3 adds r0, r6, 0 ldr r2, _080456F0 @ =REG_BG0CNT bl CpuSet adds r4, 0x1 cmp r4, 0x2 ble _0804568A ldr r0, _080456F4 @ =0x02017800 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 @ =gSprites 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 @ =0x06010000 adds r1, r2 ldr r2, _080456F8 @ =REG_BG0HOFS bl CpuSet _080456DC: mov r0, r9 movs r1, 0x1 bl sub_8045458 b _080457BA .align 2, 0 _080456E8: .4byte gSprites _080456EC: .4byte 0x06010000 _080456F0: .4byte REG_BG0CNT _080456F4: .4byte 0x02017800 _080456F8: .4byte REG_BG0HOFS _080456FC: mov r1, r9 lsls r5, r1, 4 add r5, r9 lsls r5, 2 ldr r2, _080457C8 @ =gSprites 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 @ =gBattleInterfaceStatusIcons_DynPal 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 @ =gPlttBufferUnfaded + 0x200 adds r0, r4, r0 ldr r1, _080457D4 @ =0x05000200 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 @ =0x06010000 mov r8, r2 add r1, r8 ldr r2, _080457DC @ =REG_BG2HOFS 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 @ =0x02017800 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 @ =gSprites adds r4, r1 ldrh r1, [r4, 0x4] lsls r1, 22 lsrs r1, 17 add r1, r8 ldr r5, _080457E4 @ =REG_BG0CNT 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 gSprites _080457CC: .4byte gBattleInterfaceStatusIcons_DynPal _080457D0: .4byte gPlttBufferUnfaded + 0x200 _080457D4: .4byte 0x05000200 _080457D8: .4byte 0x06010000 _080457DC: .4byte REG_BG2HOFS _080457E0: .4byte 0x02017800 _080457E4: .4byte REG_BG0CNT 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 @ =_08045808 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 @ =gSprites 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 @ =0x02000520 adds r6, r1, r0 movs r1, 0x7 mov r8, r1 ldr r1, _0804598C @ =gUnknown_08400DD6 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 @ =REG_BG0CNT 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 @ =gSprites ldr r0, _08045990 @ =REG_BG0CNT 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 @ =0x06010000 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 @ =0x06010000 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 gSprites _08045988: .4byte 0x02000520 _0804598C: .4byte gUnknown_08400DD6 _08045990: .4byte REG_BG0CNT _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 @ =gUnknown_020238CC mov r8, r0 ldr r1, _08045A3C @ =gUnknown_08400DE6 bl StringCopy adds r7, r0, 0 ldr r0, _08045A40 @ =gUnknown_02038808 ldrb r1, [r0] adds r0, r7, 0 movs r2, 0xA movs r3, 0x1 bl sub_8003504 adds r7, r0, 0 ldr r1, _08045A44 @ =gUnknown_08400DF0 bl StringAppend ldr r0, _08045A48 @ =gSprites 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 @ =0x02000520 adds r7, r4, r0 movs r6, 0x5 adds r0, r7, 0 mov r1, r8 bl sub_80034D4 ldr r0, _08045A50 @ =0x02000540 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 @ =0x06010000 adds r1, r0 adds r0, r7, 0 ldr r2, _08045A58 @ =REG_BG0CNT 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 gUnknown_020238CC _08045A3C: .4byte gUnknown_08400DE6 _08045A40: .4byte gUnknown_02038808 _08045A44: .4byte gUnknown_08400DF0 _08045A48: .4byte gSprites _08045A4C: .4byte 0x02000520 _08045A50: .4byte 0x02000540 _08045A54: .4byte 0x06010000 _08045A58: .4byte REG_BG0CNT 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 @ =gSprites 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 GetMonData 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 GetMonData 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 GetMonData 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 GetMonData adds r4, r0, 0 mov r0, r9 movs r1, 0x39 bl GetMonData 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 GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r0, r9 movs r1, 0x38 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r0, r9 movs r1, 0x19 bl GetMonData adds r3, r0, 0 ldr r6, _08045BE8 @ =gExperienceTables lsls r1, r4, 2 ldr r2, _08045BEC @ =gBaseStats 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 gSprites _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 GetMonData 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 GetMonData adds r4, r0, 0 mov r0, r9 movs r1, 0x39 bl GetMonData 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 @ =0x02017850 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 @ =0x02017850 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 @ =0x02017850 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 @ =0x02017800 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 @ =0x02017850 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 @ =0x02017850 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 @ =gSprites adds r0, r1, r6 lsls r6, r0, 2 _08045DB4: ldr r0, _08045E00 @ =0x02017850 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 @ =0x06010000 adds r1, r2 ldr r2, _08045E0C @ =REG_BG0CNT bl CpuSet b _08045E3E .align 2, 0 _08045E00: .4byte 0x02017850 _08045E04: .4byte gSprites _08045E08: .4byte 0x06010000 _08045E0C: .4byte REG_BG0CNT _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 @ =0x06010040 adds r1, r4 ldr r2, _08045E50 @ =REG_BG0CNT 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 REG_BG0CNT _08045E54: lsls r5, r6, 2 adds r3, r5, r6 lsls r3, 2 ldr r4, _08045EF0 @ =0x02017850 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 @ =gUnknown_02024A6A lsls r0, r6, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08045EF8 @ =gPlayerParty adds r0, r1 movs r1, 0x38 bl GetMonData 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 @ =gSprites adds r0, r1, r6 lsls r0, 2 ldr r1, _08045EF0 @ =0x02017850 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 @ =0x06010000 adds r1, r2 ldr r2, _08045F04 @ =REG_BG0CNT bl CpuSet b _08045F38 .align 2, 0 _08045EF0: .4byte 0x02017850 _08045EF4: .4byte gUnknown_02024A6A _08045EF8: .4byte gPlayerParty _08045EFC: .4byte gSprites _08045F00: .4byte 0x06010000 _08045F04: .4byte REG_BG0CNT _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 @ =0x06010b80 adds r1, r2 ldr r2, _08045F54 @ =REG_BG0CNT 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 REG_BG0CNT 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 @ =0xffff8000 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 @ =gUnknown_081FAEA4 ldrh r0, [r5, 0x6] bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, _08046370 @ =0xffff0000 cmp r0, r1 bne _08046266 adds r0, r5, 0 bl LoadCompressedObjectPic ldr r0, _08046374 @ =gUnknown_081FAEAC bl LoadCompressedObjectPalette _08046266: ldr r0, _08046378 @ =sub_8046388 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 @ =gSprites adds r5, r0 strh r4, [r5, 0x30] ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C mov r9, r0 lsls r6, 16 asrs r0, r6, 16 mov r10, r0 ldr r0, _08046384 @ =0xfff00000 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 @ =gSprites 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 @ =gSprites 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 @ =gSprites 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 @ =gSprites 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 gSprites _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 @ =gUnknown_081FAEA4 ldrh r0, [r0, 0x6] bl FreeSpriteTilesByTag ldr r0, _080463B8 @ =gUnknown_081FAEAC 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 @ =SpriteCallbackDummy 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 @ =gSprites 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 gSprites 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 @ =gUnknown_02024E6D movs r0, 0x1 strb r0, [r1] ldr r6, _08046454 @ =gUnknown_02024A60 ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08046458 @ =0x02017810 adds r0, r1 ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] ldr r0, _0804645C @ =sub_8046464 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08046460 @ =gTasks 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 gUnknown_02024E6D _08046454: .4byte gUnknown_02024A60 _08046458: .4byte 0x02017810 _0804645C: .4byte sub_8046464 _08046460: .4byte gTasks 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 @ =gTasks 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 gTasks _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 @ =gUnknown_02024A6A lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080464C4 @ =gEnemyParty b _080464D6 .align 2, 0 _080464C0: .4byte gUnknown_02024A6A _080464C4: .4byte gEnemyParty _080464C8: ldr r1, _08046544 @ =gUnknown_02024A6A lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08046548 @ =gPlayerParty _080464D6: adds r0, r1 movs r1, 0x26 bl GetMonData 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 @ =gSpriteTemplate_820AAB4 adds r0, r1 movs r1, 0x20 movs r2, 0x50 movs r3, 0x1D bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r2, _08046550 @ =gSprites 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 @ =gUnknown_02024C08 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 @ =sub_8047074 str r1, [r0] b _080465A6 .align 2, 0 _08046544: .4byte gUnknown_02024A6A _08046548: .4byte gPlayerParty _0804654C: .4byte gSpriteTemplate_820AAB4 _08046550: .4byte gSprites _08046554: .4byte gUnknown_02024C08 _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 @ =gUnknown_02024C08 strb r5, [r0] movs r3, 0 strh r3, [r4, 0x2E] mov r0, r9 adds r0, 0x1C adds r0, r6, r0 ldr r1, _08046594 @ =sub_8047254 str r1, [r0] b _080465A6 .align 2, 0 _08046590: .4byte gUnknown_02024C08 _08046594: .4byte sub_8047254 _08046598: movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, _080465C4 @ =gUnknown_02024C08 strb r0, [r1] movs r0, 0x1 str r0, [sp] _080465A6: ldr r0, _080465C8 @ =gSprites lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r4, r1, r0 ldr r5, _080465C4 @ =gUnknown_02024C08 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 gUnknown_02024C08 _080465C8: .4byte gSprites _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 @ =0x0000ffd8 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC mov r3, r10 strh r3, [r4, 0x6] ldr r1, _0804662C @ =gTasks 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 @ =TaskDummy str r1, [r0] movs r0, 0x3D bl PlaySE _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 gTasks _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 @ =gTasks 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 @ =sub_80466E8 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 gTasks _080466E4: .4byte sub_80466E8 thumb_func_end objc_0804ABD4 thumb_func_start sub_80466E8 sub_80466E8: @ 80466E8 ldr r1, _080466F0 @ =sub_80466F4 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 @ =sub_8046760 str r0, [r6, 0x1C] ldr r5, _08046758 @ =gUnknown_02024BE0 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 @ =gSprites 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 gUnknown_02024BE0 _0804675C: .4byte gSprites 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 PlaySE _08046778: ldr r6, _080467C4 @ =gSprites ldr r5, _080467C8 @ =gUnknown_02024BE0 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 @ =sub_80467F8 str r0, [r4, 0x1C] b _080467F0 .align 2, 0 _080467C4: .4byte gSprites _080467C8: .4byte gUnknown_02024BE0 _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 Cos ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0x36 ldrsh r1, [r4, r0] movs r0, 0 bl Cos negs r0, r0 strh r0, [r4, 0x26] ldr r0, _08046848 @ =sub_804684C 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 Cos 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 @ =0x00000101 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 PlaySE b _08046902 _080468BE: movs r0, 0x39 bl PlaySE b _08046902 _080468C6: movs r0, 0x3A bl PlaySE b _08046902 _080468CE: movs r0, 0x3B bl PlaySE b _08046902 _080468D6: movs r2, 0x38 ldrsh r0, [r4, r2] movs r2, 0x36 ldrsh r1, [r4, r2] bl Cos 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 @ =0xffffff00 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 Cos 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 @ =sub_8046C78 str r0, [r4, 0x1C] b _0804693A .align 2, 0 _08046928: .4byte 0xffffff00 _0804692C: .4byte sub_8046C78 _08046930: ldr r0, _08046940 @ =sub_8046944 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 @ =sub_8046984 str r0, [r4, 0x1C] movs r0, 0x17 bl PlaySE _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 @ =_080469A0 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 @ =sub_8046C78 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 @ =sub_8046E7C 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 @ =0xffffff00 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 PlaySE _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 @ =gTasks 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 @ =_08046B04 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08046AFC: .4byte gTasks _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 PlayCry1 b _08046BEE _08046BB2: bl StopCryAndClearCrySongs ldr r1, _08046BCC @ =gTasks 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 gTasks _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 PlayCry4 _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 IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 bne _08046C72 bl StopCryAndClearCrySongs ldr r0, _08046C44 @ =gTasks 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 gTasks _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 PlayCry4 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 @ =sub_8046E9C str r0, [r6, 0x1C] ldr r0, _08046D10 @ =gMain ldr r1, _08046D14 @ =0x0000043d 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 @ =gUnknown_02024A6A lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08046D1C @ =gEnemyParty adds r0, r1, r0 movs r3, 0x19 mov r8, r3 b _08046D34 .align 2, 0 _08046D0C: .4byte sub_8046E9C _08046D10: .4byte gMain _08046D14: .4byte 0x0000043d _08046D18: .4byte gUnknown_02024A6A _08046D1C: .4byte gEnemyParty _08046D20: ldr r1, _08046D90 @ =gUnknown_02024A6A lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08046D94 @ =gPlayerParty adds r0, r1, r0 movs r1, 0xE7 mov r8, r1 _08046D34: movs r1, 0xB bl GetMonData 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 @ =0x02017840 ldrb r1, [r0, 0x9] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08046DAE ldr r0, _08046D9C @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08046DA4 bl IsBGMPlaying lsls r0, 24 cmp r0, 0 beq _08046DAE ldr r0, _08046DA0 @ =gMPlay_BGM bl m4aMPlayStop b _08046DAE .align 2, 0 _08046D90: .4byte gUnknown_02024A6A _08046D94: .4byte gPlayerParty _08046D98: .4byte 0x02017840 _08046D9C: .4byte gUnknown_020239F8 _08046DA0: .4byte gMPlay_BGM _08046DA4: ldr r0, _08046DC8 @ =gMPlay_BGM ldr r1, _08046DCC @ =0x0000ffff movs r2, 0x80 bl m4aMPlayVolumeControl _08046DAE: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08046DC4 ldr r0, _08046DD0 @ =0x02017840 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 gMPlay_BGM _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 @ =sub_8046AD0 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08046E70 @ =gTasks 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 @ =gUnknown_02024BE0 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 @ =gSprites 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 gTasks _08046E74: .4byte gUnknown_02024BE0 _08046E78: .4byte gSprites 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 @ =sub_8046FBC 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 @ =gSprites ldr r0, _08046F04 @ =gUnknown_02024BE0 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 gSprites _08046F04: .4byte gUnknown_02024BE0 _08046F08: ldr r2, _08046FA8 @ =0xfffffee0 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 @ =gSprites ldr r0, _08046FB0 @ =gUnknown_02024BE0 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 @ =gUnknown_02024E6D strb r2, [r0] lsls r1, r4, 1 adds r1, r4 lsls r1, 2 ldr r4, _08046FB8 @ =0x02017810 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 gSprites _08046FB0: .4byte gUnknown_02024BE0 _08046FB4: .4byte gUnknown_02024E6D _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 @ =gUnknown_02024E6D movs r1, 0 strb r1, [r0] bl m4aMPlayAllStop ldr r0, _08046FF0 @ =0x00000173 bl PlaySE b _08047056 .align 2, 0 _08046FEC: .4byte gUnknown_02024E6D _08046FF0: .4byte 0x00000173 _08046FF4: ldr r0, _0804705C @ =0x0000013b cmp r1, r0 bne _08047056 ldr r5, _08047060 @ =gSprites ldr r4, _08047064 @ =gUnknown_02024BE0 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 @ =gMain ldr r1, _0804706C @ =0x0000043d 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 @ =0x02017810 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 gSprites _08047064: .4byte gUnknown_02024BE0 _08047068: .4byte gMain _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 @ =0x0000ffe2 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3A] strh r0, [r4, 0x6] adds r0, r4, 0 bl sub_80786EC ldr r0, _080470C0 @ =sub_80470C4 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 Sin 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 @ =0x02017840 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 @ =sub_8047230 b _08047216 .align 2, 0 _0804720C: .4byte 0x02017840 _08047210: .4byte sub_8047230 _08047214: ldr r0, _0804722C @ =sub_8046C78 _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 @ =sub_8046C78 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 @ =0x02017840 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 @ =sub_8047230 b _080472A2 .align 2, 0 _08047298: .4byte 0x02017840 _0804729C: .4byte sub_8047230 _080472A0: ldr r0, _080472AC @ =sub_8046C78 _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 CreatePokeballSprite CreatePokeballSprite: @ 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 @ =gUnknown_0820A92C bl LoadCompressedObjectPic ldr r0, _080473C0 @ =gUnknown_0820A98C bl LoadCompressedObjectPalette ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4 mov r1, r9 mov r2, r10 adds r3, r4, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r3, _080473C8 @ =gSprites 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 @ =sub_80473D0 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 gSprites _080473CC: .4byte sub_80473D0 thumb_func_end CreatePokeballSprite 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 @ =sub_804748C str r0, [r6, 0x1C] ldr r0, _08047478 @ =gSprites 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 gSprites _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 @ =gSprites 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 @ =gSineTable 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 gSprites _08047548: .4byte gSineTable _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 @ =gUnknown_0820A92C bl LoadCompressedObjectPic ldr r0, _08047628 @ =gUnknown_0820A98C bl LoadCompressedObjectPalette ldr r0, _0804762C @ =gSpriteTemplate_820AAB4 adds r1, r6, 0 mov r2, r8 adds r3, r4, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r6, _08047630 @ =gSprites 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 @ =sub_8047638 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 gSprites _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 @ =sub_80476E0 str r0, [r4, 0x1C] lsls r4, r7, 4 adds r4, r7 lsls r4, 2 ldr r0, _080476CC @ =gSprites 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 gSprites _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 PlaySE _080476F8: ldrh r1, [r5, 0x2E] lsls r1, 24 lsrs r1, 24 ldr r2, _08047734 @ =gSprites 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 @ =sub_8047754 str r0, [r5, 0x1C] b _0804774C .align 2, 0 _08047734: .4byte gSprites _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 @ =SpriteCallbackDummy 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 @ =gUnknown_03004340 adds r0, r5, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r6, _08047800 @ =gSprites 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 @ =sub_8047830 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 @ =sub_804780C str r0, [r4, 0x1C] _080477F4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080477FC: .4byte gUnknown_03004340 _08047800: .4byte gSprites _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 @ =sub_8047830 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 @ =SpriteCallbackDummy 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 @ =oamc_804BEB4 adds r0, r5, 0 bl object_new_hidden_with_callback lsls r0, 24 lsrs r0, 24 ldr r2, _08047894 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r3, r1, r2 movs r0, 0x1 strh r0, [r3, 0x2E] ldr r0, _08047898 @ =gUnknown_03004340 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 gSprites _08047898: .4byte gUnknown_03004340 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 @ =gSprites 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 gSprites 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 @ =gUnknown_0820A92C lsls r6, r4, 3 adds r5, r6, r0 ldrh r0, [r5, 0x6] bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, _0804793C @ =0xffff0000 cmp r0, r1 bne _08047904 adds r0, r5, 0 bl LoadCompressedObjectPic ldr r0, _08047940 @ =gUnknown_0820A98C 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 @ =gUnknown_0820A92C lsls r0, r4, 3 adds r0, r1 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag adds r1, r0, 0 lsls r1, 16 ldr r0, _08047944 @ =gUnknown_08D030D0 lsrs r1, 11 ldr r2, _08047948 @ =0x06010100 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 @ =gUnknown_0820A92C lsrs r4, 21 adds r0, r4, r0 ldrh r0, [r0, 0x6] bl FreeSpriteTilesByTag ldr r0, _08047974 @ =gUnknown_0820A98C 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 @ =gUnknown_02024A6A lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080479A0 @ =gEnemyParty b _080479B2 .align 2, 0 _0804799C: .4byte gUnknown_02024A6A _080479A0: .4byte gEnemyParty _080479A4: ldr r1, _080479C4 @ =gUnknown_02024A6A lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080479C8 @ =gPlayerParty _080479B2: adds r0, r1 movs r1, 0x26 bl GetMonData lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 .align 2, 0 _080479C4: .4byte gUnknown_02024A6A _080479C8: .4byte gPlayerParty 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 @ =gUnknown_3004820 movs r0, 0x1 str r0, [r1] bl InitFlashTimer b _080479EE .align 2, 0 _080479E4: .4byte gUnknown_3004820 _080479E8: ldr r1, _080479F4 @ =gUnknown_3004820 movs r0, 0 str r0, [r1] _080479EE: pop {r0} bx r0 .align 2, 0 _080479F4: .4byte gUnknown_3004820 thumb_func_end CheckForFlashMemory thumb_func_start sub_80479F8 sub_80479F8: @ 80479F8 ldr r0, _08047A00 @ =gSaveBlock2 ldrb r0, [r0, 0x9] bx lr .align 2, 0 _08047A00: .4byte gSaveBlock2 thumb_func_end sub_80479F8 thumb_func_start sub_8047A04 sub_8047A04: @ 8047A04 ldr r1, _08047A0C @ =gSaveBlock2 movs r0, 0 strb r0, [r1, 0x9] bx lr .align 2, 0 _08047A0C: .4byte gSaveBlock2 thumb_func_end sub_8047A04 thumb_func_start sub_8047A10 sub_8047A10: @ 8047A10 ldr r1, _08047A18 @ =gSaveBlock2 movs r0, 0x1 strb r0, [r1, 0x9] bx lr .align 2, 0 _08047A18: .4byte gSaveBlock2 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 @ =gSaveBlock2 movs r0, 0x1 strb r0, [r1, 0x9] pop {r0} bx r0 .align 2, 0 _08047A30: .4byte gSaveBlock2 thumb_func_end sub_8047A1C thumb_func_start sub_8047A34 sub_8047A34: @ 8047A34 ldr r1, _08047A3C @ =gSaveBlock2 movs r0, 0 strb r0, [r1, 0x9] bx lr .align 2, 0 _08047A3C: .4byte gSaveBlock2 thumb_func_end sub_8047A34 thumb_func_start sub_8047A40 sub_8047A40: @ 8047A40 push {r4-r6,lr} ldr r2, _08047A78 @ =gSaveBlock1 ldr r0, _08047A7C @ =gPlayerPartyCount 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 @ =gPlayerParty 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 gSaveBlock1 _08047A7C: .4byte gPlayerPartyCount _08047A80: .4byte gPlayerParty 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 @ =gPlayerPartyCount ldr r1, _08047AC4 @ =gSaveBlock1 movs r2, 0x8D lsls r2, 2 adds r1, r2 ldrb r1, [r1] strb r1, [r0] ldr r4, _08047AC8 @ =gPlayerParty movs r5, 0 movs r0, 0xFA lsls r0, 1 adds r6, r4, r0 _08047A9E: ldr r1, _08047AC4 @ =gSaveBlock1 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 gPlayerPartyCount _08047AC4: .4byte gSaveBlock1 _08047AC8: .4byte gPlayerParty thumb_func_end copy_player_party_from_sav1 thumb_func_start sub_8047ACC sub_8047ACC: @ 8047ACC push {r4-r7,lr} ldr r0, _08047AFC @ =gSaveBlock1 ldr r4, _08047B00 @ =gMapObjects 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 gSaveBlock1 _08047B00: .4byte gMapObjects thumb_func_end sub_8047ACC thumb_func_start save_deserialize_npcs save_deserialize_npcs: @ 8047B04 push {r4-r7,lr} ldr r0, _08047B34 @ =gSaveBlock1 movs r1, 0x9E lsls r1, 4 adds r4, r0, r1 ldr r3, _08047B38 @ =gMapObjects 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 gSaveBlock1 _08047B38: .4byte gMapObjects 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 @ =gSaveBlock1 movs r1, 0xAC lsls r1, 3 adds r3, r0, r1 ldr r1, _08047C10 @ =gUnknown_020291F4 movs r2, 0x13 _08047B6A: ldm r3!, {r0} stm r1!, {r0} subs r2, 0x1 cmp r2, 0 bge _08047B6A ldr r1, _08047C10 @ =gUnknown_020291F4 ldr r0, _08047C0C @ =gSaveBlock1 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 @ =gUnknown_020291F4 ldr r0, _08047C0C @ =gSaveBlock1 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 @ =gUnknown_020291F4 ldr r0, _08047C0C @ =gSaveBlock1 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 @ =gUnknown_020291F4 ldr r0, _08047C0C @ =gSaveBlock1 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 @ =gUnknown_020291F4 ldr r4, _08047C0C @ =gSaveBlock1 movs r1, 0xA6 lsls r1, 2 adds r3, r0, r1 ldr r2, _08047C14 @ =0x00002b4c 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 gSaveBlock1 _08047C10: .4byte gUnknown_020291F4 _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 @ =gSaveBlock1 ldr r3, _08047CD0 @ =gUnknown_020291F4 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 @ =gSaveBlock1 ldr r0, _08047CD0 @ =gUnknown_020291F4 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 @ =gSaveBlock1 ldr r0, _08047CD0 @ =gUnknown_020291F4 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 @ =gSaveBlock1 ldr r0, _08047CD0 @ =gUnknown_020291F4 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 @ =gSaveBlock1 ldr r0, _08047CD0 @ =gUnknown_020291F4 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 @ =gSaveBlock1 ldr r4, _08047CD0 @ =gUnknown_020291F4 ldr r6, _08047CD4 @ =0x00002b4c 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 gSaveBlock1 _08047CD0: .4byte gUnknown_020291F4 _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 @ =sub_8047EC0 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 @ =gWindowConfig_81E725C ldr r5, _08047D48 @ =gUnknown_020296CC ldr r1, [r5] ldr r2, _08047D4C @ =gSaveBlock2 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 @ =gLinkPlayers + 0x8 adds r2, r0 adds r0, r6, 0 movs r3, 0xC bl sub_804AFB8 ldr r1, [r5, 0x18] ldr r4, _08047D54 @ =gUnknown_0820C14C 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 gUnknown_020296CC _08047D4C: .4byte gSaveBlock2 _08047D50: .4byte gLinkPlayers + 0x8 _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 @ =gSaveBlock2 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 @ =gTradeUnknownSpriteCoords 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 @ =gSpriteTemplate_820C0EC 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 @ =gLinkPlayers + 0x8 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 @ =gTradeUnknownSpriteCoords + 0x3 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 @ =gSpriteTemplate_820C0EC 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 gSaveBlock2 _08047E34: .4byte gTradeUnknownSpriteCoords _08047E38: .4byte gSpriteTemplate_820C0EC _08047E3C: .4byte gLinkPlayers + 0x8 _08047E40: .4byte gTradeUnknownSpriteCoords + 0x3 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 @ =gSpriteTemplate_820C0EC 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 @ =gSpriteTemplate_820C0EC 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 @ =gMain ldr r2, _08047EE8 @ =0x0000043c 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 @ =_08047EF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08047EE4: .4byte gMain _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 @ =gUnknown_03004824 ldr r6, _0804801C @ =0x02017000 str r6, [r5] bl sub_804AA88 bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r0, [r5] adds r0, 0xC8 ldr r1, _08048020 @ =0x06002800 bl sub_804A964 ldr r0, _08048024 @ =sub_80489F4 bl SetVBlankCallback ldr r0, _08048028 @ =gWindowConfig_81E6CE4 bl InitMenuWindow ldr r4, _0804802C @ =gWindowConfig_81E6F84 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, [r5] adds r0, 0x4 adds r1, r4, 0 bl InitWindowFromConfig movs r0, 0x14 bl SetTextWindowBaseTileNum ldr r1, [r5] adds r1, 0x7A movs r4, 0 strb r0, [r1] ldr r0, [r5] adds r0, 0x4 bl LoadTextWindowGraphics bl MenuZeroFillScreen 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 @ =gUnknown_03000508 strb r4, [r0] ldr r1, _08048034 @ =gMain ldr r3, _08048038 @ =0x0000043c 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 @ =0x01000680 add r0, sp, 0x10 bl CpuSet ldr r1, _08048040 @ =gUnknown_020296CC movs r2, 0xD8 lsls r2, 7 adds r6, r2 adds r0, r1, 0 adds r0, 0x30 ldr r2, _08048044 @ =0xffffff00 _0804800A: str r6, [r0] adds r6, r2 subs r0, 0x4 cmp r0, r1 bge _0804800A b _080484C6 .align 2, 0 _08048018: .4byte gUnknown_03004824 _0804801C: .4byte 0x02017000 _08048020: .4byte 0x06002800 _08048024: .4byte sub_80489F4 _08048028: .4byte gWindowConfig_81E6CE4 _0804802C: .4byte gWindowConfig_81E6F84 _08048030: .4byte gUnknown_03000508 _08048034: .4byte gMain _08048038: .4byte 0x0000043c _0804803C: .4byte 0x01000680 _08048040: .4byte gUnknown_020296CC _08048044: .4byte 0xffffff00 _08048048: ldr r1, _08048098 @ =gLinkType ldr r3, _0804809C @ =0x00001122 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 @ =gEnemyParty 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 CreateMon adds r6, 0x1 cmp r6, 0x5 ble _08048058 ldr r1, _080480A4 @ =gMain ldr r0, _080480A8 @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _080480AC @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0xB4 strb r2, [r0] ldr r0, _080480B0 @ =sub_8083C50 movs r1, 0x1 bl CreateTask b _080484C6 .align 2, 0 _08048098: .4byte gLinkType _0804809C: .4byte 0x00001122 _080480A0: .4byte gEnemyParty _080480A4: .4byte gMain _080480A8: .4byte 0x0000043c _080480AC: .4byte gUnknown_03004824 _080480B0: .4byte sub_8083C50 _080480B4: ldr r2, _080480D8 @ =gUnknown_03004824 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 @ =0x0000043c adds r1, r3, r2 b _08048498 .align 2, 0 _080480D8: .4byte gUnknown_03004824 _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 @ =gUnknown_03004824 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 gUnknown_03004824 _08048120: ldr r1, _08048128 @ =gMain ldr r0, _0804812C @ =0x0000043c adds r1, r0 b _08048498 .align 2, 0 _08048128: .4byte gMain _0804812C: .4byte 0x0000043c _08048130: ldr r0, _08048154 @ =gReceivedRemoteLinkPlayers 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 CalculatePlayerPartyCount ldr r1, _08048158 @ =gMain ldr r2, _0804815C @ =0x0000043c adds r1, r2 b _08048498 .align 2, 0 _08048154: .4byte gReceivedRemoteLinkPlayers _08048158: .4byte gMain _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 CalculateEnemyPartyCount ldr r4, _08048294 @ =gUnknown_03004824 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 @ =gPlayerPartyCount ldrb r1, [r1] adds r0, 0x42 strb r1, [r0] ldr r0, [r4] ldr r1, _0804829C @ =gEnemyPartyCount 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 @ =gTradeMonSpriteCoords _080481BA: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _080482A4 @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData 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 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080482AC @ =sub_809D62C 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 @ =gUnknown_03004824 ldr r0, [r1] adds r0, 0x43 ldrb r0, [r0] cmp r6, r0 bge _0804828A ldr r0, _080482A0 @ =gTradeMonSpriteCoords mov r8, r1 adds r7, r0, 0 adds r7, 0xC _0804822C: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _080482B0 @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData 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 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080482AC @ =sub_809D62C 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 gUnknown_03004824 _08048298: .4byte gPlayerPartyCount _0804829C: .4byte gEnemyPartyCount _080482A0: .4byte gTradeMonSpriteCoords _080482A4: .4byte gPlayerParty _080482A8: .4byte 0xfff40000 _080482AC: .4byte sub_809D62C _080482B0: .4byte gEnemyParty _080482B4: bl sub_806DA98 ldr r0, _080482D0 @ =gUnknown_03004824 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x42 adds r1, 0x34 movs r2, 0 bl sub_806DB90 ldr r1, _080482D4 @ =gMain ldr r0, _080482D8 @ =0x0000043c adds r1, r0 b _08048498 .align 2, 0 _080482D0: .4byte gUnknown_03004824 _080482D4: .4byte gMain _080482D8: .4byte 0x0000043c _080482DC: ldr r0, _080482F4 @ =gUnknown_03004824 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x42 adds r1, 0x34 movs r2, 0x1 bl sub_806DB90 ldr r1, _080482F8 @ =gMain ldr r2, _080482FC @ =0x0000043c adds r1, r2 b _08048498 .align 2, 0 _080482F4: .4byte gUnknown_03004824 _080482F8: .4byte gMain _080482FC: .4byte 0x0000043c _08048300: bl sub_8047CE8 ldr r1, _0804831C @ =gMain ldr r3, _08048320 @ =0x0000043c adds r1, r3 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _08048324 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0xB4 strb r2, [r0] b _080484C6 .align 2, 0 _0804831C: .4byte gMain _08048320: .4byte 0x0000043c _08048324: .4byte gUnknown_03004824 _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 @ =gMain ldr r0, _08048348 @ =0x0000043c adds r1, r0 b _08048498 .align 2, 0 _08048344: .4byte gMain _08048348: .4byte 0x0000043c _0804834C: bl sub_8047D58 ldr r1, _08048358 @ =gMain ldr r2, _0804835C @ =0x0000043c adds r1, r2 b _08048498 .align 2, 0 _08048358: .4byte gMain _0804835C: .4byte 0x0000043c _08048360: bl sub_8047E44 ldr r0, _080483A4 @ =gSpriteTemplate_820C134 ldr r2, _080483A8 @ =gTradeMonSpriteCoords 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 @ =gUnknown_03004824 ldr r1, [r2] adds r1, 0x40 movs r3, 0 strb r0, [r1] ldr r0, [r2] adds r0, 0x41 strb r3, [r0] ldr r1, _080483B0 @ =gMain ldr r0, _080483B4 @ =0x0000043c 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 gTradeMonSpriteCoords _080483AC: .4byte gUnknown_03004824 _080483B0: .4byte gMain _080483B4: .4byte 0x0000043c _080483B8: movs r0, 0 bl sub_804ACF4 movs r0, 0 bl sub_804A41C ldr r2, _080483F0 @ =gUnknown_03004824 ldr r0, [r2] movs r1, 0 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x1] bl sub_8048C70 ldr r1, _080483F4 @ =gMain ldr r2, _080483F8 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x7 movs r1, 0 bl nullsub_5 ldr r0, _080483FC @ =0x000001b3 bl PlayBGM b _080484C6 .align 2, 0 _080483F0: .4byte gUnknown_03004824 _080483F4: .4byte gMain _080483F8: .4byte 0x0000043c _080483FC: .4byte 0x000001b3 _08048400: movs r0, 0x1 bl sub_804ACF4 movs r0, 0x1 bl sub_804A41C ldr r1, _08048428 @ =gMain ldr r3, _0804842C @ =0x0000043c adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08048418: movs r0, 0 bl sub_8048B0C ldr r1, _08048428 @ =gMain ldr r0, _0804842C @ =0x0000043c adds r1, r0 b _08048498 .align 2, 0 _08048428: .4byte gMain _0804842C: .4byte 0x0000043c _08048430: movs r0, 0x1 bl sub_8048B0C ldr r1, _08048440 @ =gMain ldr r2, _08048444 @ =0x0000043c adds r1, r2 b _08048498 .align 2, 0 _08048440: .4byte gMain _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 @ =0x0000043c adds r1, r3, r0 b _08048498 .align 2, 0 _0804846C: .4byte 0x0000043c _08048470: movs r0, 0 bl sub_804AE3C ldr r1, _08048480 @ =gMain ldr r2, _08048484 @ =0x0000043c adds r1, r2 b _08048498 .align 2, 0 _08048480: .4byte gMain _08048484: .4byte 0x0000043c _08048488: movs r0, 0x1 bl sub_804AE3C bl sub_804AF10 _08048492: ldr r1, _080484A0 @ =gMain ldr r3, _080484A4 @ =0x0000043c adds r1, r3 _08048498: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080484C6 .align 2, 0 _080484A0: .4byte gMain _080484A4: .4byte 0x0000043c _080484A8: ldr r0, _080484E4 @ =gPaletteFade 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 @ =sub_80494D8 str r0, [r3] ldr r0, _080484EC @ =sub_8048AB4 bl SetMainCallback2 ldr r0, _080484F0 @ =gUnknown_03000508 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 gPaletteFade _080484E8: .4byte sub_80494D8 _080484EC: .4byte sub_8048AB4 _080484F0: .4byte gUnknown_03000508 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 @ =gMain ldr r2, _0804851C @ =0x0000043c 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 @ =_08048524 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08048518: .4byte gMain _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 @ =gUnknown_03004824 ldr r6, _08048634 @ =0x02017000 str r6, [r5] bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r0, [r5] adds r0, 0xC8 ldr r1, _08048638 @ =0x06002800 bl sub_804A964 ldr r0, _0804863C @ =sub_80489F4 bl SetVBlankCallback ldr r0, _08048640 @ =gWindowConfig_81E6CE4 bl InitMenuWindow ldr r4, _08048644 @ =gWindowConfig_81E6F84 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, [r5] adds r0, 0x4 adds r1, r4, 0 bl InitWindowFromConfig movs r0, 0x14 bl SetTextWindowBaseTileNum ldr r1, [r5] adds r1, 0x7A movs r4, 0 strb r0, [r1] ldr r0, [r5] adds r0, 0x4 bl LoadTextWindowGraphics bl MenuZeroFillScreen 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 @ =gUnknown_03000508 strb r4, [r0] ldr r1, _0804864C @ =gMain ldr r3, _08048650 @ =0x0000043c adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _08048654 @ =gUnknown_020296CC movs r5, 0xD8 lsls r5, 7 adds r6, r5 adds r0, r1, 0 adds r0, 0x30 ldr r2, _08048658 @ =0xffffff00 _08048622: str r6, [r0] adds r6, r2 subs r0, 0x4 cmp r0, r1 bge _08048622 b _080489CA .align 2, 0 _08048630: .4byte gUnknown_03004824 _08048634: .4byte 0x02017000 _08048638: .4byte 0x06002800 _0804863C: .4byte sub_80489F4 _08048640: .4byte gWindowConfig_81E6CE4 _08048644: .4byte gWindowConfig_81E6F84 _08048648: .4byte gUnknown_03000508 _0804864C: .4byte gMain _08048650: .4byte 0x0000043c _08048654: .4byte gUnknown_020296CC _08048658: .4byte 0xffffff00 _0804865C: ldr r0, _08048664 @ =0x0000043c adds r1, r2, r0 b _0804883E .align 2, 0 _08048664: .4byte 0x0000043c _08048668: ldr r3, _08048670 @ =0x0000043c adds r1, r2, r3 b _0804899E .align 2, 0 _08048670: .4byte 0x0000043c _08048674: ldr r5, _0804867C @ =0x0000043c adds r1, r2, r5 b _0804899E .align 2, 0 _0804867C: .4byte 0x0000043c _08048680: bl CalculatePlayerPartyCount ldr r1, _0804868C @ =gMain ldr r0, _08048690 @ =0x0000043c adds r1, r0 b _0804899E .align 2, 0 _0804868C: .4byte gMain _08048690: .4byte 0x0000043c _08048694: ldr r3, _0804869C @ =0x0000043c adds r1, r2, r3 b _0804899E .align 2, 0 _0804869C: .4byte 0x0000043c _080486A0: bl CalculateEnemyPartyCount movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] ldr r4, _080487C0 @ =gUnknown_03004824 ldr r0, [r4] ldr r1, _080487C4 @ =gPlayerPartyCount ldrb r1, [r1] adds r0, 0x42 strb r1, [r0] ldr r0, [r4] ldr r1, _080487C8 @ =gEnemyPartyCount 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 @ =gTradeMonSpriteCoords _080486DE: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _080487D0 @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData 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 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080487D8 @ =sub_809D62C 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 @ =gUnknown_03004824 ldr r0, [r1] adds r0, 0x43 ldrb r0, [r0] cmp r6, r0 bge _080487B0 ldr r0, _080487CC @ =gTradeMonSpriteCoords mov r8, r1 adds r7, r0, 0 adds r7, 0xC _08048752: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _080487DC @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData 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 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080487D8 @ =sub_809D62C 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 @ =gMain ldr r3, _080487E4 @ =0x0000043c adds r1, r3 b _0804899E .align 2, 0 _080487C0: .4byte gUnknown_03004824 _080487C4: .4byte gPlayerPartyCount _080487C8: .4byte gEnemyPartyCount _080487CC: .4byte gTradeMonSpriteCoords _080487D0: .4byte gPlayerParty _080487D4: .4byte 0xfff40000 _080487D8: .4byte sub_809D62C _080487DC: .4byte gEnemyParty _080487E0: .4byte gMain _080487E4: .4byte 0x0000043c _080487E8: bl sub_806DA98 ldr r0, _08048804 @ =gUnknown_03004824 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x42 adds r1, 0x34 movs r2, 0 bl sub_806DB90 ldr r1, _08048808 @ =gMain ldr r5, _0804880C @ =0x0000043c adds r1, r5 b _0804899E .align 2, 0 _08048804: .4byte gUnknown_03004824 _08048808: .4byte gMain _0804880C: .4byte 0x0000043c _08048810: ldr r0, _08048828 @ =gUnknown_03004824 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x42 adds r1, 0x34 movs r2, 0x1 bl sub_806DB90 ldr r1, _0804882C @ =gMain ldr r0, _08048830 @ =0x0000043c adds r1, r0 b _0804899E .align 2, 0 _08048828: .4byte gUnknown_03004824 _0804882C: .4byte gMain _08048830: .4byte 0x0000043c _08048834: bl sub_8047CE8 ldr r1, _08048850 @ =gMain ldr r2, _08048854 @ =0x0000043c adds r1, r2 _0804883E: ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _08048858 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0xB4 strb r2, [r0] b _080489CA .align 2, 0 _08048850: .4byte gMain _08048854: .4byte 0x0000043c _08048858: .4byte gUnknown_03004824 _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 @ =gMain ldr r3, _0804887C @ =0x0000043c adds r1, r3 b _0804899E .align 2, 0 _08048878: .4byte gMain _0804887C: .4byte 0x0000043c _08048880: bl sub_8047D58 ldr r1, _0804888C @ =gMain ldr r5, _08048890 @ =0x0000043c adds r1, r5 b _0804899E .align 2, 0 _0804888C: .4byte gMain _08048890: .4byte 0x0000043c _08048894: bl sub_8047E44 ldr r2, _080488AC @ =0x02018000 ldr r0, _080488B0 @ =gUnknown_03004824 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 gUnknown_03004824 _080488B4: ldrb r0, [r2, 0x9] adds r0, 0x6 _080488B8: strb r0, [r1] ldr r0, _08048900 @ =gSpriteTemplate_820C134 ldr r3, _08048904 @ =gTradeMonSpriteCoords ldr r4, _08048908 @ =gUnknown_03004824 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 @ =gMain ldr r1, _08048910 @ =0x0000043c 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 gTradeMonSpriteCoords _08048908: .4byte gUnknown_03004824 _0804890C: .4byte gMain _08048910: .4byte 0x0000043c _08048914: movs r0, 0 bl sub_8048B0C b _08048998 _0804891C: movs r0, 0x1 bl sub_8048B0C ldr r2, _08048944 @ =gUnknown_03004824 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 @ =gMain ldr r3, _0804894C @ =0x0000043c adds r1, r3 b _0804899E .align 2, 0 _08048944: .4byte gUnknown_03004824 _08048948: .4byte gMain _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 @ =gMain ldr r5, _0804896C @ =0x0000043c adds r1, r5 b _0804899E .align 2, 0 _08048968: .4byte gMain _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 @ =0x0000043c adds r1, r2, r5 b _0804899E .align 2, 0 _08048984: .4byte 0x0000043c _08048988: ldr r0, _08048990 @ =0x0000043c adds r1, r2, r0 b _0804899E .align 2, 0 _08048990: .4byte 0x0000043c _08048994: bl sub_804AF10 _08048998: ldr r1, _080489A8 @ =gMain ldr r2, _080489AC @ =0x0000043c adds r1, r2 _0804899E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080489CA .align 2, 0 _080489A8: .4byte gMain _080489AC: .4byte 0x0000043c _080489B0: ldr r0, _080489E8 @ =gPaletteFade 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 @ =sub_8048AB4 bl SetMainCallback2 ldr r0, _080489F0 @ =gUnknown_03000508 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 gPaletteFade _080489EC: .4byte sub_8048AB4 _080489F0: .4byte gUnknown_03000508 thumb_func_end sub_80484F4 thumb_func_start sub_80489F4 sub_80489F4: @ 80489F4 push {lr} ldr r0, _08048A10 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0xC8 bl sub_804A940 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 _08048A10: .4byte gUnknown_03004824 thumb_func_end sub_80489F4 thumb_func_start sub_8048A14 sub_8048A14: @ 8048A14 push {r4,lr} sub sp, 0x4 ldr r4, _08048A4C @ =gUnknown_03004824 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 gUnknown_03004824 thumb_func_end sub_8048A14 thumb_func_start sub_8048A50 sub_8048A50: @ 8048A50 push {r4,lr} ldr r0, _08048A84 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08048A7E ldr r2, _08048A88 @ =gUnknown_020297D8 ldr r4, _08048A8C @ =gUnknown_03004824 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 gPaletteFade _08048A88: .4byte gUnknown_020297D8 _08048A8C: .4byte gUnknown_03004824 thumb_func_end sub_8048A50 thumb_func_start sub_8048A90 sub_8048A90: @ 8048A90 push {lr} ldr r0, _08048AA8 @ =gReceivedRemoteLinkPlayers ldrb r1, [r0] cmp r1, 0 bne _08048AA4 ldr r0, _08048AAC @ =gMain str r1, [r0] ldr r0, _08048AB0 @ =sub_804B41C bl SetMainCallback2 _08048AA4: pop {r0} bx r0 .align 2, 0 _08048AA8: .4byte gReceivedRemoteLinkPlayers _08048AAC: .4byte gMain _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 @ =REG_BG2HOFS ldr r3, _08048B08 @ =gUnknown_03004824 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 REG_BG2HOFS _08048B08: .4byte gUnknown_03004824 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 @ =gUnknown_08EA0348 ldr r0, _08048BA4 @ =gTradeStripesBG2Tilemap mov r12, r0 ldr r1, _08048BA8 @ =gUnknown_08EA02C8 ldr r4, _08048BAC @ =gPlttBufferFaded ldr r3, _08048BB0 @ =gPlttBufferUnfaded 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 @ =0x040000d4 ldr r6, _08048BB8 @ =0x80000800 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 @ =0x000003ff ldr r4, _08048BC0 @ =gUnknown_03004824 ldr r3, _08048BC4 @ =gUnknown_08EA15C8 _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 @ =0x06003000 ldr r0, _08048BB4 @ =0x040000d4 mov r2, r12 str r2, [r0] str r1, [r0, 0x4] ldr r1, _08048BCC @ =0x80000400 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _08048C3A .align 2, 0 _08048BA0: .4byte gUnknown_08EA0348 _08048BA4: .4byte gTradeStripesBG2Tilemap _08048BA8: .4byte gUnknown_08EA02C8 _08048BAC: .4byte gPlttBufferFaded _08048BB0: .4byte gPlttBufferUnfaded _08048BB4: .4byte 0x040000d4 _08048BB8: .4byte 0x80000800 _08048BBC: .4byte 0x000003ff _08048BC0: .4byte gUnknown_03004824 _08048BC4: .4byte gUnknown_08EA15C8 _08048BC8: .4byte 0x06003000 _08048BCC: .4byte 0x80000400 _08048BD0: ldr r1, _08048C40 @ =gTradeStripesBG3Tilemap ldr r2, _08048C44 @ =0x06003800 ldr r0, _08048C48 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08048C4C @ =0x80000400 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0 bl sub_804A6DC movs r0, 0x1 bl sub_804A6DC ldr r0, _08048C50 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0xC8 bl sub_804A938 ldr r2, _08048C54 @ =REG_BG0CNT ldrh r1, [r2] ldr r0, _08048C58 @ =0x0000fffc ands r0, r1 strh r0, [r2] ldr r1, _08048C5C @ =REG_BG1CNT ldr r2, _08048C60 @ =0x00000501 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08048C64 @ =0x00000602 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08048C68 @ =0x00000703 adds r0, r2, 0 strh r0, [r1] ldr r0, _08048C6C @ =REG_BG0HOFS 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 gTradeStripesBG3Tilemap _08048C44: .4byte 0x06003800 _08048C48: .4byte 0x040000d4 _08048C4C: .4byte 0x80000400 _08048C50: .4byte gUnknown_03004824 _08048C54: .4byte REG_BG0CNT _08048C58: .4byte 0x0000fffc _08048C5C: .4byte REG_BG1CNT _08048C60: .4byte 0x00000501 _08048C64: .4byte 0x00000602 _08048C68: .4byte 0x00000703 _08048C6C: .4byte REG_BG0HOFS 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 @ =gUnknown_03004824 mov r8, r5 ldr r0, _08048CC4 @ =gSprites 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 gUnknown_03004824 _08048CC4: .4byte gSprites _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 @ =gUnknown_03004824 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 @ =_08048D98 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08048D90: .4byte gUnknown_03004824 _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 @ =gBlockSendBuffer ldr r1, _08048DF0 @ =gPlayerParty movs r2, 0xC8 bl sub_8048D24 ldr r0, _08048DF4 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048DEC: .4byte gBlockSendBuffer _08048DF0: .4byte gPlayerParty _08048DF4: .4byte gUnknown_03004824 _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 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048E14: .4byte gUnknown_03004824 _08048E18: bl ResetBlockReceivedFlags ldr r0, _08048E24 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048E24: .4byte gUnknown_03004824 _08048E28: cmp r7, 0 bne _08048E32 movs r0, 0x1 bl sub_8007E9C _08048E32: ldr r0, _08048E38 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048E38: .4byte gUnknown_03004824 _08048E3C: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08048E4A b _0804907C _08048E4A: ldr r0, _08048E68 @ =gEnemyParty movs r2, 0x1 adds r1, r7, 0 eors r1, r2 lsls r1, 8 ldr r2, _08048E6C @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xC8 bl sub_8048D24 bl ResetBlockReceivedFlags ldr r0, _08048E70 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048E68: .4byte gEnemyParty _08048E6C: .4byte gBlockRecvBuffer _08048E70: .4byte gUnknown_03004824 _08048E74: ldr r0, _08048E84 @ =gBlockSendBuffer ldr r1, _08048E88 @ =gUnknown_03004428 movs r2, 0xC8 bl sub_8048D24 ldr r0, _08048E8C @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048E84: .4byte gBlockSendBuffer _08048E88: .4byte gUnknown_03004428 _08048E8C: .4byte gUnknown_03004824 _08048E90: cmp r7, 0 bne _08048E9A movs r0, 0x1 bl sub_8007E9C _08048E9A: ldr r0, _08048EA0 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048EA0: .4byte gUnknown_03004824 _08048EA4: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08048EB2 b _0804907C _08048EB2: ldr r0, _08048ED0 @ =gUnknown_03004688 movs r2, 0x1 adds r1, r7, 0 eors r1, r2 lsls r1, 8 ldr r2, _08048ED4 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xC8 bl sub_8048D24 bl ResetBlockReceivedFlags ldr r0, _08048ED8 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048ED0: .4byte gUnknown_03004688 _08048ED4: .4byte gBlockRecvBuffer _08048ED8: .4byte gUnknown_03004824 _08048EDC: ldr r0, _08048EEC @ =gBlockSendBuffer ldr r1, _08048EF0 @ =gUnknown_030044F0 movs r2, 0xC8 bl sub_8048D24 ldr r0, _08048EF4 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048EEC: .4byte gBlockSendBuffer _08048EF0: .4byte gUnknown_030044F0 _08048EF4: .4byte gUnknown_03004824 _08048EF8: cmp r7, 0 bne _08048F02 movs r0, 0x1 bl sub_8007E9C _08048F02: ldr r0, _08048F08 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048F08: .4byte gUnknown_03004824 _08048F0C: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08048F1A b _0804907C _08048F1A: ldr r0, _08048F38 @ =gUnknown_03004750 movs r2, 0x1 adds r1, r7, 0 eors r1, r2 lsls r1, 8 ldr r2, _08048F3C @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xC8 bl sub_8048D24 bl ResetBlockReceivedFlags ldr r0, _08048F40 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048F38: .4byte gUnknown_03004750 _08048F3C: .4byte gBlockRecvBuffer _08048F40: .4byte gUnknown_03004824 _08048F44: ldr r0, _08048F54 @ =gBlockSendBuffer ldr r1, _08048F58 @ =gSaveBlock1 + 0x2B4C movs r2, 0xDC bl sub_8048D24 ldr r0, _08048F5C @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048F54: .4byte gBlockSendBuffer _08048F58: .4byte gSaveBlock1 + 0x2B4C _08048F5C: .4byte gUnknown_03004824 _08048F60: cmp r7, 0 bne _08048F6A movs r0, 0x3 bl sub_8007E9C _08048F6A: ldr r0, _08048F70 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048F70: .4byte gUnknown_03004824 _08048F74: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08048F82 b _0804907C _08048F82: ldr r0, _08048FA0 @ =gUnknown_02029700 movs r2, 0x1 adds r1, r7, 0 eors r1, r2 lsls r1, 8 ldr r2, _08048FA4 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xD8 bl sub_8048D24 bl ResetBlockReceivedFlags ldr r0, _08048FA8 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048FA0: .4byte gUnknown_02029700 _08048FA4: .4byte gBlockRecvBuffer _08048FA8: .4byte gUnknown_03004824 _08048FAC: ldr r0, _08048FBC @ =gBlockSendBuffer ldr r1, _08048FC0 @ =gSaveBlock1 + 0x3110 movs r2, 0xB bl sub_8048D24 ldr r0, _08048FC4 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048FBC: .4byte gBlockSendBuffer _08048FC0: .4byte gSaveBlock1 + 0x3110 _08048FC4: .4byte gUnknown_03004824 _08048FC8: cmp r7, 0 bne _08048FD2 movs r0, 0x4 bl sub_8007E9C _08048FD2: ldr r0, _08048FD8 @ =gUnknown_03004824 ldr r1, [r0] b _08049006 .align 2, 0 _08048FD8: .4byte gUnknown_03004824 _08048FDC: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0804907C ldr r4, _08049010 @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0xB5 movs r2, 0x1 adds r1, r7, 0 eors r1, r2 lsls r1, 8 ldr r2, _08049014 @ =gBlockRecvBuffer 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 gUnknown_03004824 _08049014: .4byte gBlockRecvBuffer _08049018: ldr r4, _0804906C @ =gEnemyParty ldr r6, _08049070 @ =0x0000012f movs r5, 0x5 _0804901E: adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _0804905E cmp r0, r6 bne _0804905E adds r0, r4, 0 movs r1, 0x3 bl GetMonData cmp r0, 0x1 beq _0804905E adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl GetMonData mov r0, sp ldr r1, _08049074 @ =gUnknown_0820C3B0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _0804905E adds r0, r4, 0 movs r1, 0x2 ldr r2, _08049078 @ =gSpeciesNames + 0xD05 bl SetMonData _0804905E: adds r4, 0x64 subs r5, 0x1 cmp r5, 0 bge _0804901E movs r0, 0x1 b _0804907E .align 2, 0 _0804906C: .4byte gEnemyParty _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 @ =gTradeText_TradeOkayPrompt mov r0, sp bl StringCopy ldr r0, _080490B4 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x7E ldrh r1, [r0] lsls r1, 5 ldr r0, _080490B8 @ =0x06010000 adds r1, r0 mov r0, sp movs r2, 0x14 bl sub_804ACD8 add sp, 0x1C pop {r0} bx r0 .align 2, 0 _080490B0: .4byte gTradeText_TradeOkayPrompt _080490B4: .4byte gUnknown_03004824 _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 @ =gBlockRecvBuffer lsls r0, r2, 8 adds r0, r1 ldrh r1, [r0] ldr r0, _080490F0 @ =0x0000bbbb cmp r1, r0 beq _08049128 cmp r1, r0 bgt _080490F8 ldr r0, _080490F4 @ =0x0000aabb cmp r1, r0 beq _08049118 b _08049142 .align 2, 0 _080490EC: .4byte gBlockRecvBuffer _080490F0: .4byte 0x0000bbbb _080490F4: .4byte 0x0000aabb _080490F8: ldr r0, _0804910C @ =0x0000bbcc cmp r1, r0 beq _08049138 ldr r0, _08049110 @ =0x0000eeaa cmp r1, r0 bne _08049142 ldr r0, _08049114 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x84 b _0804913E .align 2, 0 _0804910C: .4byte 0x0000bbcc _08049110: .4byte 0x0000eeaa _08049114: .4byte gUnknown_03004824 _08049118: ldr r0, _08049124 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x84 strb r3, [r0] b _08049142 .align 2, 0 _08049124: .4byte gUnknown_03004824 _08049128: ldr r0, _08049134 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x86 strb r3, [r0] b _08049142 .align 2, 0 _08049134: .4byte gUnknown_03004824 _08049138: ldr r0, _08049170 @ =gUnknown_03004824 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 @ =gBlockRecvBuffer movs r1, 0x80 lsls r1, 1 adds r0, r3, r1 ldrh r1, [r0] ldr r0, _08049178 @ =0x0000bbbb cmp r1, r0 beq _080491BC cmp r1, r0 bgt _08049180 ldr r0, _0804917C @ =0x0000aabb cmp r1, r0 beq _080491A0 b _080491D4 .align 2, 0 _08049170: .4byte gUnknown_03004824 _08049174: .4byte gBlockRecvBuffer _08049178: .4byte 0x0000bbbb _0804917C: .4byte 0x0000aabb _08049180: ldr r0, _08049194 @ =0x0000bbcc cmp r1, r0 beq _080491CC ldr r0, _08049198 @ =0x0000eeaa cmp r1, r0 bne _080491D4 ldr r0, _0804919C @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x85 b _080491D2 .align 2, 0 _08049194: .4byte 0x0000bbcc _08049198: .4byte 0x0000eeaa _0804919C: .4byte gUnknown_03004824 _080491A0: ldr r2, _080491B8 @ =gUnknown_03004824 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 gUnknown_03004824 _080491BC: ldr r0, _080491C8 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x87 _080491C2: movs r1, 0x1 strb r1, [r0] b _080491D4 .align 2, 0 _080491C8: .4byte gUnknown_03004824 _080491CC: ldr r0, _080491E0 @ =gUnknown_03004824 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 gUnknown_03004824 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 @ =gBlockRecvBuffer ldrh r1, [r2] ldr r0, _08049214 @ =0x0000ddee cmp r1, r0 beq _080492A8 cmp r1, r0 bgt _08049220 ldr r0, _08049218 @ =0x0000ccdd cmp r1, r0 beq _08049288 ldr r0, _0804921C @ =0x0000dddd cmp r1, r0 beq _0804925C b _080492B8 .align 2, 0 _08049210: .4byte gBlockRecvBuffer _08049214: .4byte 0x0000ddee _08049218: .4byte 0x0000ccdd _0804921C: .4byte 0x0000dddd _08049220: ldr r0, _08049230 @ =0x0000eebb 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 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x7B movs r1, 0xB b _080492B6 .align 2, 0 _08049254: .4byte gUnknown_03004824 _08049258: movs r0, 0x5 b _080492AA _0804925C: ldr r4, _08049284 @ =gUnknown_03004824 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 gUnknown_03004824 _08049288: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080492A4 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x7B movs r1, 0xA b _080492B6 .align 2, 0 _080492A4: .4byte gUnknown_03004824 _080492A8: movs r0, 0x1 _080492AA: bl sub_804AA0C ldr r0, _080492D4 @ =gUnknown_03004824 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 gUnknown_03004824 thumb_func_end sub_80491E4 thumb_func_start sub_80492D8 sub_80492D8: @ 80492D8 push {r4-r6,lr} sub sp, 0x4 ldr r6, _08049334 @ =gUnknown_03004824 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 @ =0x00000101 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 @ =0x0000dddd 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 gUnknown_03004824 _08049338: .4byte 0x00000101 _0804933C: .4byte 0x0000dddd _08049340: ldr r0, _08049388 @ =0x00000201 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 @ =0x0000eecc 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 @ =0x0000ddee 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 @ =0x00000202 cmp r1, r0 bne _08049420 adds r1, r2, 0 adds r1, 0x8C movs r5, 0 movs r4, 0 ldr r0, _080494C4 @ =0x0000eebb 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 @ =gUnknown_03004824 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 @ =0x00000101 cmp r1, r0 bne _0804946E adds r1, r3, 0 adds r1, 0x8C movs r4, 0 movs r2, 0 ldr r0, _080494D0 @ =0x0000ccdd 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 @ =0x0000ddee 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 gUnknown_03004824 _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 @ =gUnknown_03004824 ldr r3, [r2] ldr r4, _0804954C @ =gTradeNextSelectedMonTable 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 gUnknown_03004824 _0804954C: .4byte gTradeNextSelectedMonTable _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 @ =gUnknown_03004824 ldr r0, [r5] adds r0, 0x40 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080495B4 @ =gSprites 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 gUnknown_03004824 _080495B4: .4byte gSprites _080495B8: ldr r4, _08049614 @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0x40 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08049618 @ =gSprites 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 @ =gTradeMonSpriteCoords 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 PlaySE _0804960C: strb r6, [r7] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08049614: .4byte gUnknown_03004824 _08049618: .4byte gSprites _0804961C: .4byte gTradeMonSpriteCoords 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 @ =gUnknown_03004824 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 @ =0x0000aabb 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 gUnknown_03004824 _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 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080496A8 ldr r0, _080496A4 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x41 movs r1, 0 bl sub_8049560 b _080496F4 .align 2, 0 _080496A0: .4byte gMain _080496A4: .4byte gUnknown_03004824 _080496A8: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080496C4 ldr r0, _080496C0 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x41 movs r1, 0x1 bl sub_8049560 b _080496F4 .align 2, 0 _080496C0: .4byte gUnknown_03004824 _080496C4: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080496E0 ldr r0, _080496DC @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x41 movs r1, 0x2 bl sub_8049560 b _080496F4 .align 2, 0 _080496DC: .4byte gUnknown_03004824 _080496E0: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080496F4 ldr r0, _08049750 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x41 movs r1, 0x3 bl sub_8049560 _080496F4: ldr r0, _08049754 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080497B6 movs r0, 0x5 bl PlaySE ldr r4, _08049750 @ =gUnknown_03004824 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 DrawTextWindow ldr r3, _08049758 @ =gUnknown_0820C320 movs r0, 0x13 movs r1, 0xF movs r2, 0x2 bl PrintMenuItems 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 gUnknown_03004824 _08049754: .4byte gMain _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 DrawTextWindow movs r0, 0x18 movs r1, 0xE movs r2, 0x4 bl InitYesNoMenu ldr r0, [r4] adds r0, 0x7B movs r1, 0x4 strb r1, [r0] ldr r0, _080497F4 @ =gUnknown_0820C14C ldr r0, [r0, 0x10] ldr r1, [r4] adds r1, 0x7E ldrh r1, [r1] lsls r1, 5 ldr r2, _080497F8 @ =0x06010000 adds r1, r2 movs r2, 0x14 bl sub_804ACD8 _080497B6: ldr r0, _080497FC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080497EC movs r2, 0 ldr r3, _08049800 @ =gUnknown_03004824 _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 @ =gUnknown_03004824 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 gMain _08049800: .4byte gUnknown_03004824 thumb_func_end sub_8049680 thumb_func_start sub_8049804 sub_8049804: @ 8049804 push {lr} bl sub_8072DEC bl sub_804A80C ldr r3, _08049850 @ =gUnknown_03004824 ldr r0, [r3] adds r0, 0x7B movs r1, 0 strb r1, [r0] ldr r2, _08049854 @ =gSprites 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 @ =gUnknown_0820C14C ldr r0, [r0, 0x4] ldr r1, [r3] adds r1, 0x7E ldrh r1, [r1] lsls r1, 5 ldr r2, _0804985C @ =0x06010000 adds r1, r2 movs r2, 0x14 bl sub_804ACD8 pop {r0} bx r0 .align 2, 0 _08049850: .4byte gUnknown_03004824 _08049854: .4byte gSprites _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 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08049880 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _08049890 .align 2, 0 _0804987C: .4byte gMain _08049880: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804989C movs r0, 0x5 bl PlaySE movs r0, 0x1 _08049890: bl MoveMenuCursor ldr r1, _080498D8 @ =gUnknown_03004824 ldr r1, [r1] adds r1, 0x7C strb r0, [r1] _0804989C: ldr r0, _080498DC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08049938 movs r0, 0x5 bl PlaySE 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 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x7B movs r1, 0x2 strb r1, [r0] b _0804994A .align 2, 0 _080498D8: .4byte gUnknown_03004824 _080498DC: .4byte gMain _080498E0: ldr r4, _08049910 @ =gUnknown_03004824 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 gUnknown_03004824 _08049914: bl sub_8049620 ldr r2, _08049934 @ =gSprites 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 gSprites _08049938: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804994A movs r0, 0x5 bl PlaySE 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 @ =gMain 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 PlaySE bl sub_8049804 _08049974: pop {r0} bx r0 .align 2, 0 _08049978: .4byte gMain thumb_func_end sub_8049954 thumb_func_start sub_804997C sub_804997C: @ 804997C push {r4,lr} sub sp, 0x4 ldr r0, _080499B4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080499E0 ldr r0, _080499B8 @ =gUnknown_03004824 ldr r2, [r0] adds r3, r2, 0 adds r3, 0x41 ldrb r1, [r3] cmp r1, 0x5 bhi _080499C4 ldr r0, _080499BC @ =gPlayerParty ldrb r1, [r3] adds r2, 0x42 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _080499C0 @ =sub_80484F4 movs r4, 0x4 str r4, [sp] bl sub_809D8BC b _080499E0 .align 2, 0 _080499B4: .4byte gPaletteFade _080499B8: .4byte gUnknown_03004824 _080499BC: .4byte gPlayerParty _080499C0: .4byte sub_80484F4 _080499C4: ldr r0, _080499E8 @ =gEnemyParty 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 @ =sub_80484F4 movs r4, 0x4 str r4, [sp] bl sub_809D8BC _080499E0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080499E8: .4byte gEnemyParty _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 @ =gUnknown_03004824 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 @ =0x0000bbcc strh r1, [r0] movs r0, 0xB4 movs r1, 0 bl sub_804AADC b _08049AB4 .align 2, 0 _08049A80: .4byte gUnknown_03004824 _08049A84: .4byte 0x0000bbcc _08049A88: movs r0, 0x3 movs r1, 0x1 bl sub_804AADC ldr r0, [r5] adds r0, 0x8C ldr r1, _08049ABC @ =0x0000bbbb 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 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08049AE0 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _08049AF0 .align 2, 0 _08049ADC: .4byte gMain _08049AE0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08049AFC movs r0, 0x5 bl PlaySE movs r0, 0x1 _08049AF0: bl MoveMenuCursor ldr r1, _08049B20 @ =gUnknown_03004824 ldr r1, [r1] adds r1, 0x7C strb r0, [r1] _08049AFC: ldr r0, _08049B24 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08049B64 movs r0, 0x5 bl PlaySE bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 bne _08049B28 bl sub_8049A20 b _08049B56 .align 2, 0 _08049B20: .4byte gUnknown_03004824 _08049B24: .4byte gMain _08049B28: movs r0, 0x3 movs r1, 0x1 bl sub_804AADC bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _08049B56 ldr r4, _08049B5C @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0x8C ldr r1, _08049B60 @ =0x0000bbcc 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 @ =gUnknown_03004824 ldr r0, [r0] b _08049BAA .align 2, 0 _08049B5C: .4byte gUnknown_03004824 _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 @ =gUnknown_03004824 ldr r1, [r1] adds r1, 0x7C strb r0, [r1] _08049B8C: ldr r4, _08049BB8 @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0x8C ldr r1, _08049BBC @ =0x0000bbcc 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 gUnknown_03004824 _08049BBC: .4byte 0x0000bbcc thumb_func_end sub_8049AC0 thumb_func_start sub_8049BC0 sub_8049BC0: @ 8049BC0 push {r4,r5,lr} ldr r0, _08049BDC @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08049BE0 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _08049BF0 .align 2, 0 _08049BDC: .4byte gMain _08049BE0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08049BFC movs r0, 0x5 bl PlaySE movs r0, 0x1 _08049BF0: bl MoveMenuCursor ldr r1, _08049C5C @ =gUnknown_03004824 ldr r1, [r1] adds r1, 0x7C strb r0, [r1] _08049BFC: ldr r0, _08049C60 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08049C72 movs r0, 0x5 bl PlaySE bl GetMenuCursorPos lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08049C6C movs r0, 0x4 bl sub_804AA0C ldr r4, _08049C5C @ =gUnknown_03004824 ldr r0, [r4] adds r2, r0, 0 adds r2, 0x8C ldr r1, _08049C64 @ =0x0000eeaa strh r1, [r2] adds r0, 0x8E strh r5, [r0] movs r0, 0x5 movs r1, 0 bl sub_804AADC ldr r2, _08049C68 @ =gSprites 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 gUnknown_03004824 _08049C60: .4byte gMain _08049C64: .4byte 0x0000eeaa _08049C68: .4byte gSprites _08049C6C: bl sub_8049804 b _08049C84 _08049C72: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08049C84 movs r0, 0x5 bl PlaySE 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 @ =gUnknown_03004824 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 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x7B movs r1, 0x7 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08049CC0: .4byte gUnknown_03004824 thumb_func_end sub_8049C8C thumb_func_start sub_8049CC4 sub_8049CC4: @ 8049CC4 push {r4,lr} ldr r4, _08049CE8 @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0x80 ldrh r1, [r0] ldr r0, _08049CEC @ =0x00000505 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 gUnknown_03004824 _08049CEC: .4byte 0x00000505 thumb_func_end sub_8049CC4 thumb_func_start DisplayMessageAndContinueTask DisplayMessageAndContinueTask: @ 8049CF0 push {r4,lr} sub sp, 0x4 ldr r4, _08049D40 @ =gUnknown_03004824 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 DrawTextWindow movs r0, 0x18 movs r1, 0xE movs r2, 0x4 bl InitYesNoMenu 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 gUnknown_03004824 thumb_func_end DisplayMessageAndContinueTask thumb_func_start sub_8049D44 sub_8049D44: @ 8049D44 push {lr} ldr r0, _08049D90 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08049D8A movs r0, 0x5 bl PlaySE movs r0, 0 bl sub_804A840 movs r0, 0x1 bl sub_804A840 ldr r2, _08049D94 @ =gUnknown_03004824 ldr r0, [r2] adds r0, 0x7B movs r1, 0 strb r1, [r0] ldr r3, _08049D98 @ =gSprites 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 gMain _08049D94: .4byte gUnknown_03004824 _08049D98: .4byte gSprites thumb_func_end sub_8049D44 thumb_func_start sub_8049D9C sub_8049D9C: @ 8049D9C push {lr} ldr r0, _08049DBC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08049DB8 bl sub_800832C ldr r0, _08049DC0 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x7B movs r1, 0xC strb r1, [r0] _08049DB8: pop {r0} bx r0 .align 2, 0 _08049DBC: .4byte gPaletteFade _08049DC0: .4byte gUnknown_03004824 thumb_func_end sub_8049D9C thumb_func_start sub_8049DC4 sub_8049DC4: @ 8049DC4 push {lr} ldr r0, _08049DD8 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _08049DD4 ldr r0, _08049DDC @ =sub_805465C bl SetMainCallback2 _08049DD4: pop {r0} bx r0 .align 2, 0 _08049DD8: .4byte gReceivedRemoteLinkPlayers _08049DDC: .4byte sub_805465C thumb_func_end sub_8049DC4 thumb_func_start sub_8049DE0 sub_8049DE0: @ 8049DE0 push {lr} ldr r0, _08049DF8 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x7B ldrb r0, [r0] cmp r0, 0xF bhi _08049E98 lsls r0, 2 ldr r1, _08049DFC @ =_08049E00 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08049DF8: .4byte gUnknown_03004824 _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 @ =gUnknown_03004824 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 gUnknown_03004824 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 @ =gUnknown_03004824 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 gUnknown_03004824 _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 @ =gSprites ldr r2, [sp, 0x6C] lsls r2, 1 mov r9, r2 ldr r3, _0804A098 @ =gTradeMonSpriteCoords 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 @ =gUnknown_03004824 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 @ =gUnknown_03004824 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 @ =gUnknown_03004824 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 @ =sub_809D62C bl oamt_set_x3A_32 ldr r2, _0804A09C @ =gUnknown_03004824 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 @ =gUnknown_03004824 ldr r0, [r3] adds r0, 0x4 ldr r1, _0804A0A4 @ =gUnknown_0820C330 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 @ =gUnknown_03004824 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 @ =gTradePartyBoxTilemap 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 gSprites _0804A098: .4byte gTradeMonSpriteCoords _0804A09C: .4byte gUnknown_03004824 _0804A0A0: .4byte sub_809D62C _0804A0A4: .4byte gUnknown_0820C330 _0804A0A8: .4byte gTradePartyBoxTilemap _0804A0AC: ldr r2, _0804A0DC @ =gSprites 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 @ =sub_809D62C cmp r1, r0 beq _0804A0D4 b _0804A294 _0804A0D4: movs r0, 0x3 strb r0, [r3] b _0804A294 .align 2, 0 _0804A0DC: .4byte gSprites _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 @ =gTradeMovesBoxTilemap 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 @ =gUnknown_03004824 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 @ =gSprites adds r2, r5 ldr r4, _0804A234 @ =gTradeMonSpriteCoords 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 @ =gSprites 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 @ =gUnknown_03004824 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 @ =gUnknown_0820C334 ldr r3, [sp, 0x6C] lsls r1, r3, 2 adds r3, r1, r4 ldrb r3, [r3] ldr r5, _0804A23C @ =gUnknown_0820C334 + 0x1 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 @ =gUnknown_03004824 ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _0804A240 @ =gOtherText_Terminator2 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 @ =gUnknown_0820C334 + 0x1 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 @ =gUnknown_03004824 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 @ =gUnknown_03004824 ldr r1, [r2] b _0804A28A .align 2, 0 _0804A228: .4byte gTradeMovesBoxTilemap _0804A22C: .4byte gUnknown_03004824 _0804A230: .4byte gSprites _0804A234: .4byte gTradeMonSpriteCoords _0804A238: .4byte gUnknown_0820C334 _0804A23C: .4byte gUnknown_0820C334 + 0x1 _0804A240: .4byte gOtherText_Terminator2 _0804A244: ldr r0, _0804A2A4 @ =gUnknown_0820C14C ldr r0, [r0, 0x14] adds r1, r5, 0 adds r1, 0x7E ldrh r1, [r1] lsls r1, 5 ldr r3, _0804A2A8 @ =0x06010000 adds r1, r3 movs r2, 0x14 bl sub_804ACD8 ldr r0, _0804A2AC @ =gUnknown_0820C3D1 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 @ =gUnknown_03004824 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 gUnknown_03004824 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 @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl GetMonData adds r0, r5, 0 mov r1, sp bl StringCopy10 adds r0, r4, 0 bl GetMonGender adds r0, r4, 0 movs r1, 0x38 bl GetMonData b _0804A31E .align 2, 0 _0804A2F0: .4byte gPlayerParty _0804A2F4: movs r0, 0x64 adds r4, r2, 0 muls r4, r0 ldr r0, _0804A334 @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl GetMonData adds r0, r5, 0 mov r1, sp bl StringCopy10 adds r0, r4, 0 bl GetMonGender adds r0, r4, 0 movs r1, 0x38 bl GetMonData _0804A31E: ldr r0, _0804A338 @ =gWindowConfig_81E7294 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 gEnemyParty _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 @ =gUnknown_03004824 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 @ =gPlayerParty mov r9, r0 ldr r2, _0804A38C @ =gEnemyParty 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 gUnknown_03004824 _0804A388: .4byte gPlayerParty _0804A38C: .4byte gEnemyParty _0804A390: adds r1, r4, 0 adds r1, 0xD mov r2, r8 _0804A396: adds r0, r5, r2 movs r2, 0 bl GetMonData 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 @ =gOtherText_Terminator 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 @ =gMoveNames adds r1, r0 adds r0, r6, 0 bl StringAppend _0804A3D4: adds r0, r6, 0 ldr r1, _0804A3F0 @ =gOtherText_ControlAndMiscText 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 gOtherText_Terminator _0804A3EC: .4byte gMoveNames _0804A3F0: .4byte gOtherText_ControlAndMiscText _0804A3F4: ldr r1, _0804A414 @ =gOtherText_Terminator adds r0, r6, 0 bl StringCopy ldr r1, _0804A418 @ =gOtherText_FourQuestions 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 gOtherText_Terminator _0804A418: .4byte gOtherText_FourQuestions 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 @ =gUnknown_03004824 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 @ =gTradeMonSpriteCoords 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 @ =gPlayerParty b _0804A484 .align 2, 0 _0804A470: .4byte gUnknown_03004824 _0804A474: .4byte gTradeMonSpriteCoords _0804A478: .4byte gPlayerParty _0804A47C: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _0804A514 @ =gEnemyParty _0804A484: adds r4, r0 adds r0, r4, 0 movs r1, 0x2 add r2, sp, 0x4 bl GetMonData mov r0, sp adds r0, 0x22 add r1, sp, 0x4 bl StringCopy10 adds r0, r4, 0 bl GetMonGender mov r1, sp adds r1, 0x22 ldr r0, _0804A518 @ =gWindowConfig_81E7294 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 gEnemyParty _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 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0xC8 ldr r3, _0804A5A0 @ =gTradeMonBoxTilemap 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 @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x38 movs r2, 0 bl GetMonData lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 bl GetMonGender lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 movs r1, 0x2 add r2, sp, 0xC bl GetMonData b _0804A5D4 .align 2, 0 _0804A59C: .4byte gUnknown_03004824 _0804A5A0: .4byte gTradeMonBoxTilemap _0804A5A4: .4byte gPlayerParty _0804A5A8: movs r0, 0x64 mov r4, r9 muls r4, r0 ldr r0, _0804A65C @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x38 movs r2, 0 bl GetMonData lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 bl GetMonGender lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 movs r1, 0x2 add r2, sp, 0xC bl GetMonData _0804A5D4: ldr r1, _0804A660 @ =gUnknown_03004824 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 @ =gUnknown_03004824 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 NameHasGenderSymbol lsls r0, 24 cmp r0, 0 bne _0804A6CC ldr r3, _0804A660 @ =gUnknown_03004824 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 gEnemyParty _0804A660: .4byte gUnknown_03004824 _0804A664: cmp r7, 0xFE bne _0804A6CC add r0, sp, 0xC movs r1, 0xFE bl NameHasGenderSymbol lsls r0, 24 cmp r0, 0 bne _0804A6CC ldr r0, _0804A68C @ =gUnknown_03004824 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 gUnknown_03004824 _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 @ =gUnknown_03004824 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 @ =gTradeLevelDisplayCoords lsls r0, 2 adds r5, r0, r1 ldr r1, _0804A73C @ =gTradeMonBoxCoords 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 @ =gUnknown_03004824 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 gUnknown_03004824 _0804A738: .4byte gTradeLevelDisplayCoords _0804A73C: .4byte gTradeMonBoxCoords 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 @ =gUnknown_03004824 ldr r0, [r3] adds r0, 0x42 add r0, r12 ldrb r0, [r0] cmp r7, r0 bge _0804A7F2 ldr r6, _0804A804 @ =gSprites mov r9, r3 mov r1, r12 lsls r0, r1, 1 add r0, r12 lsls r2, r0, 1 mov r10, r2 ldr r1, _0804A808 @ =gTradeMonSpriteCoords 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 gUnknown_03004824 _0804A804: .4byte gSprites _0804A808: .4byte gTradeMonSpriteCoords thumb_func_end sub_804A740 thumb_func_start sub_804A80C sub_804A80C: @ 804A80C push {lr} sub sp, 0x8 ldr r0, _0804A838 @ =gUnknown_03004824 ldr r0, [r0] adds r0, 0x4 ldr r1, _0804A83C @ =gUnknown_0820C330 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 gUnknown_03004824 _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 @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0x4 ldr r1, _0804A8A0 @ =gUnknown_0820C330 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 @ =gTradePartyBoxTilemap 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 gUnknown_03004824 _0804A8A0: .4byte gUnknown_0820C330 _0804A8A4: .4byte gTradePartyBoxTilemap _0804A8A8: bl sub_8072DEC ldr r4, _0804A924 @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0x4 ldr r1, _0804A928 @ =gUnknown_0820C330 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 @ =gTradePartyBoxTilemap 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 @ =gUnknown_0820C14C ldr r0, [r0, 0x4] ldr r4, _0804A924 @ =gUnknown_03004824 ldr r1, [r4] adds r1, 0x7E ldrh r1, [r1] lsls r1, 5 ldr r2, _0804A934 @ =0x06010000 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 gUnknown_03004824 _0804A928: .4byte gUnknown_0820C330 _0804A92C: .4byte gTradePartyBoxTilemap _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 MenuZeroFillScreen pop {r0} bx r0 thumb_func_end sub_804A9F4 thumb_func_start sub_804AA00 sub_804AA00: @ 804AA00 push {lr} bl MenuZeroFillScreen 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 @ =gUnknown_03004824 mov r8, r0 ldr r0, [r0] adds r0, 0x4 ldr r2, _0804AA80 @ =gTradeMessageWindowRects 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 DrawTextWindow mov r1, r8 ldr r3, [r1] adds r0, r3, 0x4 ldr r1, _0804AA84 @ =gUnknown_0820C2F0 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 gUnknown_03004824 _0804AA80: .4byte gTradeMessageWindowRects _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 @ =gUnknown_03004824 ldr r0, _0804AAD4 @ =0x000008dc mov r8, r0 movs r4, 0 ldr r2, _0804AAD8 @ =0x000008de 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 gUnknown_03004824 _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 @ =gUnknown_03004824 mov r12, r4 ldr r7, _0804AB1C @ =0x000008dc _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 @ =0x000008de 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 @ =0x000008dc adds r0, r1 movs r1, 0x1 strb r1, [r0] b _0804AB2A .align 2, 0 _0804AB18: .4byte gUnknown_03004824 _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 @ =gUnknown_03004824 _0804AB36: ldr r0, [r3] lsls r1, r4, 3 adds r2, r0, r1 ldr r5, _0804AB5C @ =0x000008dc adds r0, r2, r5 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0 beq _0804ABE2 ldr r0, _0804AB60 @ =0x000008de 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 gUnknown_03004824 _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 @ =_0804AB80 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 @ =gUnknown_03004824 ldr r1, [r1] adds r1, 0x8C movs r2, 0x14 bl SendBlock b _0804ABD2 .align 2, 0 _0804ABB0: .4byte gUnknown_03004824 _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 @ =gUnknown_03004824 ldr r1, [r0] adds r1, r5 ldr r2, _0804ABF4 @ =0x000008dc 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 gUnknown_03004824 _0804ABF4: .4byte 0x000008dc thumb_func_end sub_804AB30 thumb_func_start sub_804ABF8 sub_804ABF8: @ 804ABF8 push {r4,lr} ldr r0, _0804AC14 @ =gUnknown_03004824 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 @ =_0804AC1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804AC14: .4byte gUnknown_03004824 _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 @ =gUnknown_0820C07C 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 @ =gSpritePalette_TradeScreenText bl LoadSpritePalette ldr r0, _0804AC70 @ =gUnknown_03004824 ldr r1, [r0] b _0804ACC2 .align 2, 0 _0804AC6C: .4byte gSpritePalette_TradeScreenText _0804AC70: .4byte gUnknown_03004824 _0804AC74: ldr r0, _0804AC80 @ =gUnknown_0820C12C bl LoadSpritePalette ldr r0, _0804AC84 @ =gUnknown_03004824 ldr r1, [r0] b _0804ACC2 .align 2, 0 _0804AC80: .4byte gUnknown_0820C12C _0804AC84: .4byte gUnknown_03004824 _0804AC88: ldr r0, _0804ACA8 @ =gUnknown_0820C124 bl LoadSpriteSheet ldr r0, _0804ACAC @ =gUnknown_03004824 ldr r1, [r0] adds r1, 0xB4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0804AC9A: ldr r0, _0804ACAC @ =gUnknown_03004824 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 gUnknown_03004824 _0804ACB0: ldr r0, [r4] adds r0, 0xB4 ldrb r0, [r0] lsls r0, 3 ldr r1, _0804ACD4 @ =gUnknown_0820C07C 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 @ =gWindowConfig_81E725C 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 @ =gUnknown_03004824 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 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData 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 gUnknown_03004824 _0804AD50: .4byte gPlayerParty _0804AD54: adds r0, r4, 0 movs r1, 0x39 bl GetMonData 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 @ =gUnknown_03004824 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 gUnknown_03004824 _0804ADA0: movs r7, 0 ldr r1, _0804ADE0 @ =gUnknown_03004824 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 @ =gEnemyParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData 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 gUnknown_03004824 _0804ADE4: .4byte gEnemyParty _0804ADE8: adds r0, r4, 0 movs r1, 0x39 bl GetMonData 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 @ =gUnknown_03004824 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 gUnknown_03004824 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 @ =gUnknown_03004824 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 @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x3A bl GetMonData 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 gUnknown_03004824 _0804AEA8: .4byte gPlayerParty _0804AEAC: movs r6, 0 ldr r1, _0804AF08 @ =gUnknown_03004824 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 @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x3A bl GetMonData 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 gUnknown_03004824 _0804AF0C: .4byte gEnemyParty 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 @ =gUnknown_03004824 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 @ =gSprites 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 gUnknown_03004824 _0804AF80: .4byte gSprites thumb_func_end sub_804AF10 thumb_func_start sub_804AF84 sub_804AF84: @ 804AF84 push {r4,lr} movs r2, 0 ldr r4, _0804AFB0 @ =gSaveBlock1 + 0x3110 ldr r3, _0804AFB4 @ =gUnknown_03004824 _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 gSaveBlock1 + 0x3110 _0804AFB4: .4byte gUnknown_03004824 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 @ =gTileBuffer 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 gTileBuffer 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 PlaySE 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 @ =gTradeGlow2PaletteAnimTable 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 gTradeGlow2PaletteAnimTable 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 PlaySE 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 @ =gUnknown_03004828 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 @ =REG_BG2PA 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 gUnknown_03004828 _0804B1B8: .4byte REG_BG2PA thumb_func_end sub_804B128 thumb_func_start sub_804B1BC sub_804B1BC: @ 804B1BC push {lr} ldr r1, _0804B1FC @ =REG_BG1VOFS ldr r0, _0804B200 @ =gUnknown_03004828 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 @ =REG_BG2VOFS 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 REG_BG1VOFS _0804B200: .4byte gUnknown_03004828 _0804B204: .4byte REG_BG2VOFS _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 @ =gUnknown_03004828 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 gUnknown_03004828 thumb_func_end sub_804B228 thumb_func_start sub_804B24C sub_804B24C: @ 804B24C push {r4,r5,lr} ldr r1, _0804B270 @ =gUnknown_03004828 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 gUnknown_03004828 _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 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0804B2C4 movs r0, 0 b _0804B2CC .align 2, 0 _0804B2C0: .4byte gReceivedRemoteLinkPlayers _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 @ =gUnknown_020297D8 ldrb r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0804B328 @ =gPlayerParty adds r1, r0 mov r10, r1 movs r4, 0x1 _0804B2FC: cmp r7, 0x1 bne _0804B31A ldr r0, _0804B324 @ =gUnknown_020297D8 ldrb r0, [r0, 0x1] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _0804B32C @ =gEnemyParty 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 gUnknown_020297D8 _0804B328: .4byte gPlayerParty _0804B32C: .4byte gEnemyParty _0804B330: mov r0, r10 movs r1, 0x41 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r0, r10 movs r1, 0 bl GetMonData mov r9, r0 lsls r0, r5, 3 ldr r1, _0804B390 @ =gMonFrontPicTable adds r0, r1 ldr r1, _0804B394 @ =gMonFrontPicCoords lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r3, _0804B398 @ =0x02000000 ldr r6, _0804B39C @ =gUnknown_081FAF4C 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 @ =gUnknown_03004828 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 gUnknown_03004828 _0804B3A4: mov r0, r10 bl sub_8040990 ldrh r0, [r0, 0x4] adds r1, r4, 0 bl GetMonSpriteTemplate_803C56C ldr r0, _0804B40C @ =gUnknown_02024E8C movs r1, 0x78 movs r2, 0x3C movs r3, 0x6 bl CreateSprite ldr r4, _0804B410 @ =gUnknown_03004828 ldr r1, [r4] adds r1, 0xB8 adds r1, r7 strb r0, [r1] ldr r3, _0804B414 @ =gSprites 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 @ =SpriteCallbackDummy 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 gUnknown_02024E8C _0804B410: .4byte gUnknown_03004828 _0804B414: .4byte gSprites _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 @ =gMain ldr r2, _0804B440 @ =0x0000043c 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 @ =_0804B448 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804B43C: .4byte gMain _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 @ =gUnknown_03004828 ldr r5, _0804B574 @ =0x0201f000 str r5, [r6] bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _0804B578 @ =sub_804B210 bl SetVBlankCallback bl sub_804B228 ldr r4, _0804B57C @ =gWindowConfig_81E6F84 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, [r6] adds r0, 0x4 adds r1, r4, 0 bl InitWindowFromConfig movs r0, 0x2 bl SetTextWindowBaseTileNum ldr r1, [r6] adds r1, 0x34 strb r0, [r1] ldr r0, [r6] adds r0, 0x4 bl LoadTextWindowGraphics bl MenuZeroFillScreen ldr r1, _0804B580 @ =gLinkType ldr r4, _0804B584 @ =0x00001144 adds r0, r4, 0 strh r0, [r1] ldr r1, _0804B588 @ =gMain ldr r0, _0804B58C @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _0804B590 @ =gUnknown_08D00000 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r0, _0804B594 @ =gUnknown_08D00524 ldr r1, _0804B598 @ =0xfffe1000 adds r5, r1 movs r2, 0x80 lsls r2, 4 adds r1, r5, 0 bl CpuSet ldr r1, _0804B59C @ =0x06002800 ldr r0, _0804B5A0 @ =0x040000d4 str r5, [r0] str r1, [r0, 0x4] ldr r1, _0804B5A4 @ =0x80000280 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _0804B5A8 @ =gUnknown_08D004E0 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 gUnknown_03004828 _0804B574: .4byte 0x0201f000 _0804B578: .4byte sub_804B210 _0804B57C: .4byte gWindowConfig_81E6F84 _0804B580: .4byte gLinkType _0804B584: .4byte 0x00001144 _0804B588: .4byte gMain _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 @ =gMain ldr r2, _0804B5CC @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _0804B5D0 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xC0 str r2, [r0] b _0804B76E .align 2, 0 _0804B5C8: .4byte gMain _0804B5CC: .4byte 0x0000043c _0804B5D0: .4byte gUnknown_03004828 _0804B5D4: ldr r0, _0804B5F4 @ =gUnknown_03004828 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 @ =0x0000043c adds r1, r2, r4 b _0804B74C .align 2, 0 _0804B5F4: .4byte gUnknown_03004828 _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 @ =gUnknown_03004828 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 @ =gMain ldr r0, _0804B644 @ =0x0000043c adds r1, r0 b _0804B74C .align 2, 0 _0804B63C: .4byte gUnknown_03004828 _0804B640: .4byte gMain _0804B644: .4byte 0x0000043c _0804B648: bl sub_804B24C ldr r0, _0804B66C @ =gReceivedRemoteLinkPlayers 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 @ =gMain ldr r4, _0804B674 @ =0x0000043c adds r1, r4 b _0804B74C .align 2, 0 _0804B66C: .4byte gReceivedRemoteLinkPlayers _0804B670: .4byte gMain _0804B674: .4byte 0x0000043c _0804B678: ldr r2, _0804B69C @ =gUnknown_03004828 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 @ =gMain ldr r0, _0804B6A4 @ =0x0000043c adds r1, r0 b _0804B74C .align 2, 0 _0804B69C: .4byte gUnknown_03004828 _0804B6A0: .4byte gMain _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 @ =gMain ldr r4, _0804B6C8 @ =0x0000043c adds r1, r4 b _0804B74C .align 2, 0 _0804B6C4: .4byte gMain _0804B6C8: .4byte 0x0000043c _0804B6CC: movs r0, 0x1 movs r1, 0x1 bl sub_804B2D0 ldr r1, _0804B6DC @ =gMain ldr r0, _0804B6E0 @ =0x0000043c adds r1, r0 b _0804B74C .align 2, 0 _0804B6DC: .4byte gMain _0804B6E0: .4byte 0x0000043c _0804B6E4: bl sub_804C164 ldr r0, _0804B704 @ =gUnknown_0821594C bl LoadSpriteSheet ldr r0, _0804B708 @ =gUnknown_08215954 bl LoadSpritePalette ldr r1, _0804B70C @ =REG_BG1CNT ldr r2, _0804B710 @ =0x00000502 adds r0, r2, 0 strh r0, [r1] ldr r1, _0804B714 @ =gMain ldr r4, _0804B718 @ =0x0000043c adds r1, r4 b _0804B74C .align 2, 0 _0804B704: .4byte gUnknown_0821594C _0804B708: .4byte gUnknown_08215954 _0804B70C: .4byte REG_BG1CNT _0804B710: .4byte 0x00000502 _0804B714: .4byte gMain _0804B718: .4byte 0x0000043c _0804B71C: ldr r0, _0804B754 @ =0x0000043c 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 @ =gMain ldr r2, _0804B754 @ =0x0000043c adds r1, r2 _0804B74C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804B76E .align 2, 0 _0804B754: .4byte 0x0000043c _0804B758: .4byte gMain _0804B75C: ldr r0, _0804B788 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804B76E ldr r0, _0804B78C @ =sub_804DB84 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 gPaletteFade _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 @ =gMain ldr r2, _0804B7B8 @ =0x0000043c 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 @ =_0804B7C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804B7B4: .4byte gMain _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 @ =gUnknown_020297D8 ldr r0, _0804B8E4 @ =gUnknown_0202E8CE ldrh r0, [r0] movs r6, 0 strb r0, [r1] movs r0, 0x6 strb r0, [r1, 0x1] ldr r4, _0804B8E8 @ =gLinkPlayers + 0x8 ldr r1, _0804B8EC @ =gSaveBlock2 adds r0, r4, 0 bl StringCopy ldr r0, _0804B8F0 @ =gEnemyParty movs r1, 0x7 add r2, sp, 0x4 bl GetMonData 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 @ =gUnknown_03004828 ldr r0, _0804B8F8 @ =0x0201f000 str r0, [r5] bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _0804B8FC @ =sub_804B210 bl SetVBlankCallback bl sub_804B228 ldr r4, _0804B900 @ =gWindowConfig_81E717C adds r0, r4, 0 bl SetUpWindowConfig ldr r0, [r5] adds r0, 0x4 adds r1, r4, 0 bl InitWindowFromConfig movs r0, 0x2 bl SetTextWindowBaseTileNum ldr r1, [r5] adds r1, 0x34 strb r0, [r1] ldr r0, [r5] adds r0, 0x4 bl LoadTextWindowGraphics bl MenuZeroFillScreen ldr r1, _0804B904 @ =gLinkType ldr r2, _0804B908 @ =0x00001144 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 @ =gMain ldr r2, _0804B910 @ =0x0000043c adds r0, r2 movs r1, 0x5 strb r1, [r0] b _0804B9F2 .align 2, 0 _0804B8E0: .4byte gUnknown_020297D8 _0804B8E4: .4byte gUnknown_0202E8CE _0804B8E8: .4byte gLinkPlayers + 0x8 _0804B8EC: .4byte gSaveBlock2 _0804B8F0: .4byte gEnemyParty _0804B8F4: .4byte gUnknown_03004828 _0804B8F8: .4byte 0x0201f000 _0804B8FC: .4byte sub_804B210 _0804B900: .4byte gWindowConfig_81E717C _0804B904: .4byte gLinkType _0804B908: .4byte 0x00001144 _0804B90C: .4byte gMain _0804B910: .4byte 0x0000043c _0804B914: movs r0, 0 movs r1, 0 bl sub_804B2D0 ldr r1, _0804B924 @ =gMain ldr r3, _0804B928 @ =0x0000043c adds r1, r3 b _0804B9D0 .align 2, 0 _0804B924: .4byte gMain _0804B928: .4byte 0x0000043c _0804B92C: movs r0, 0 movs r1, 0x1 bl sub_804B2D0 ldr r1, _0804B93C @ =gMain ldr r0, _0804B940 @ =0x0000043c adds r1, r0 b _0804B9D0 .align 2, 0 _0804B93C: .4byte gMain _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 @ =gMain ldr r3, _0804B964 @ =0x0000043c adds r1, r3 b _0804B9D0 .align 2, 0 _0804B960: .4byte gMain _0804B964: .4byte 0x0000043c _0804B968: bl sub_804C164 ldr r0, _0804B988 @ =gUnknown_0821594C bl LoadSpriteSheet ldr r0, _0804B98C @ =gUnknown_08215954 bl LoadSpritePalette ldr r1, _0804B990 @ =REG_BG1CNT ldr r2, _0804B994 @ =0x00000502 adds r0, r2, 0 strh r0, [r1] ldr r1, _0804B998 @ =gMain ldr r3, _0804B99C @ =0x0000043c adds r1, r3 b _0804B9D0 .align 2, 0 _0804B988: .4byte gUnknown_0821594C _0804B98C: .4byte gUnknown_08215954 _0804B990: .4byte REG_BG1CNT _0804B994: .4byte 0x00000502 _0804B998: .4byte gMain _0804B99C: .4byte 0x0000043c _0804B9A0: ldr r0, _0804B9D8 @ =0x0000043c 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 @ =gMain ldr r2, _0804B9D8 @ =0x0000043c adds r1, r2 _0804B9D0: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804B9F2 .align 2, 0 _0804B9D8: .4byte 0x0000043c _0804B9DC: .4byte gMain _0804B9E0: ldr r0, _0804BA10 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804B9F2 ldr r0, _0804BA14 @ =sub_804BBCC 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 gPaletteFade _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 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804BA5A adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData 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 gPlayerParty thumb_func_end sub_804BA18 thumb_func_start sub_804BA64 sub_804BA64: @ 804BA64 push {lr} bl GetMultiplayerId lsls r0, 24 ldr r2, _0804BA90 @ =gLinkPlayers 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 gLinkPlayers 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 @ =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x40 bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r1, r4, 0 muls r1, r5 ldr r0, _0804BB64 @ =gEnemyParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x40 bl GetMonData 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 @ =gSaveBlock1 + 0x2B4C adds r0, r1 bl sub_80A2B40 _0804BAE8: ldr r4, _0804BB6C @ =gUnknown_03004828 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 GetMonData cmp r0, 0 bne _0804BB28 adds r0, r7, 0 movs r1, 0x20 mov r2, sp bl SetMonData _0804BB28: mov r0, r8 cmp r0, 0xFF beq _0804BB3E lsls r1, r0, 3 add r1, r8 lsls r1, 2 ldr r0, _0804BB70 @ =gUnknown_02029700 adds r1, r0 adds r0, r7, 0 bl sub_80A2D88 _0804BB3E: mov r0, r9 bl sub_804BA18 ldr r0, _0804BB74 @ =gReceivedRemoteLinkPlayers 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 gPlayerParty _0804BB64: .4byte gEnemyParty _0804BB68: .4byte gSaveBlock1 + 0x2B4C _0804BB6C: .4byte gUnknown_03004828 _0804BB70: .4byte gUnknown_02029700 _0804BB74: .4byte gReceivedRemoteLinkPlayers thumb_func_end sub_804BA94 thumb_func_start sub_804BB78 sub_804BB78: @ 804BB78 push {r4,lr} ldr r4, _0804BB8C @ =gUnknown_03004828 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 gUnknown_03004828 _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 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xBD movs r1, 0 strb r1, [r0] _0804BBC0: pop {r4} pop {r0} bx r0 .align 2, 0 _0804BBC8: .4byte gUnknown_03004828 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 @ =_0804BC04 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 @ =gUnknown_0820C9F8 movs r1, 0x10 movs r2, 0xA0 bl LoadPalette ldr r3, _0804BCA4 @ =gUnknown_0820CA98 ldr r4, _0804BCA8 @ =0x06004000 movs r5, 0x98 lsls r5, 5 ldr r1, _0804BCAC @ =0x040000d4 ldr r6, _0804BCB0 @ =0x80000800 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 @ =gUnknown_0820F798 ldr r2, _0804BCB8 @ =0x06009000 ldr r0, _0804BCAC @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0804BCB0 @ =0x80000800 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _0804BCBC @ =gUnknown_03004828 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 @ =0x00005206 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 gUnknown_03004828 _0804BCC0: .4byte 0x00005206 _0804BCC4: ldr r0, _0804BD3C @ =gUnknown_03004828 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 @ =REG_BG1VOFS strh r1, [r0] ldr r1, _0804BD44 @ =REG_BG1CNT ldr r2, _0804BD48 @ =0x00008502 adds r0, r2, 0 strh r0, [r1] ldr r0, _0804BD4C @ =gUnknown_08210798 ldr r2, _0804BD50 @ =0x06002800 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 @ =gUnknown_0820CA98 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 @ =0x00001241 adds r0, r3, 0 strh r0, [r1] b _0804C0CA .align 2, 0 _0804BD3C: .4byte gUnknown_03004828 _0804BD40: .4byte REG_BG1VOFS _0804BD44: .4byte REG_BG1CNT _0804BD48: .4byte 0x00008502 _0804BD4C: .4byte gUnknown_08210798 _0804BD50: .4byte 0x06002800 _0804BD54: .4byte gUnknown_0820CA98 _0804BD58: .4byte 0x00001241 _0804BD5C: ldr r0, _0804BD8C @ =gUnknown_03004828 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 @ =0x00001241 adds r0, r4, 0 strh r0, [r1] ldr r1, _0804BD94 @ =gUnknown_08211798 ldr r2, _0804BD98 @ =0x06002800 ldr r0, _0804BD9C @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0804BDA0 @ =0x80000400 b _0804C0C6 .align 2, 0 _0804BD8C: .4byte gUnknown_03004828 _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 @ =gUnknown_03004828 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 @ =0x0000ffba strh r0, [r1] movs r1, 0x8E lsls r1, 1 adds r0, r3, r1 strh r2, [r0] ldr r3, _0804BE2C @ =gUnknown_0820DD98 ldr r4, _0804BE30 @ =0x06004000 movs r5, 0xD0 lsls r5, 5 ldr r2, _0804BE34 @ =gUnknown_08211F98 mov r12, r2 ldr r1, _0804BE38 @ =0x040000d4 ldr r6, _0804BE3C @ =0x80000800 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 @ =0x06009000 ldr r0, _0804BE38 @ =0x040000d4 mov r3, r12 str r3, [r0] str r1, [r0, 0x4] ldr r1, _0804BE44 @ =0x80000080 b _0804C0C6 .align 2, 0 _0804BE24: .4byte gUnknown_03004828 _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 @ =0x00001441 adds r0, r4, 0 strh r0, [r1] adds r1, 0xC ldr r2, _0804BED4 @ =0x00001287 adds r0, r2, 0 strh r0, [r1] ldr r0, _0804BED8 @ =gUnknown_03004828 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 @ =gUnknown_08213738 ldr r4, _0804BEE0 @ =0x06004000 movs r5, 0x81 lsls r5, 6 ldr r2, _0804BEE4 @ =gUnknown_08215778 mov r12, r2 ldr r1, _0804BEE8 @ =0x040000d4 ldr r6, _0804BEEC @ =0x80000800 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 @ =0x06009000 ldr r0, _0804BEE8 @ =0x040000d4 mov r3, r12 str r3, [r0] str r1, [r0, 0x4] ldr r1, _0804BEF4 @ =0x80000080 b _0804C0C6 .align 2, 0 _0804BED0: .4byte 0x00001441 _0804BED4: .4byte 0x00001287 _0804BED8: .4byte gUnknown_03004828 _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 @ =gUnknown_03004828 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 @ =REG_BG1CNT ldr r4, _0804BF80 @ =0x00000502 adds r0, r4, 0 strh r0, [r1] ldr r0, _0804BF84 @ =gUnknown_08D00000 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r0, _0804BF88 @ =gUnknown_08D00524 ldr r4, _0804BF8C @ =0x02000000 movs r2, 0x80 lsls r2, 4 adds r1, r4, 0 bl CpuSet ldr r0, _0804BF90 @ =gUnknown_08D004E0 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 @ =0x02000000 ldr r2, _0804BF94 @ =0x06002800 ldr r0, _0804BF98 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0804BF9C @ =0x80000280 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl MenuZeroFillWindowRect b _0804C0CA .align 2, 0 _0804BF78: .4byte gUnknown_03004828 _0804BF7C: .4byte REG_BG1CNT _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 @ =0x00001441 adds r0, r2, 0 strh r0, [r1] adds r1, 0xC ldr r3, _0804C03C @ =0x00001287 adds r0, r3, 0 strh r0, [r1] ldr r0, _0804C040 @ =gUnknown_03004828 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 @ =gUnknown_08213738 ldr r4, _0804C048 @ =0x06004000 movs r5, 0x81 lsls r5, 6 ldr r2, _0804C04C @ =gUnknown_08215778 mov r12, r2 ldr r1, _0804C050 @ =0x040000d4 ldr r6, _0804C054 @ =0x80000800 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 @ =0x06009000 ldr r0, _0804C050 @ =0x040000d4 mov r3, r12 str r3, [r0] str r1, [r0, 0x4] ldr r1, _0804C05C @ =0x80000080 b _0804C0C6 .align 2, 0 _0804C038: .4byte 0x00001441 _0804C03C: .4byte 0x00001287 _0804C040: .4byte gUnknown_03004828 _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 @ =gUnknown_03004828 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 @ =REG_BG2CNT ldr r4, _0804C0D8 @ =0x00005206 adds r0, r4, 0 strh r0, [r1] ldr r0, _0804C0DC @ =gUnknown_0820C9F8 movs r1, 0x10 movs r2, 0xA0 bl LoadPalette ldr r3, _0804C0E0 @ =gUnknown_0820CA98 ldr r4, _0804C0E4 @ =0x06004000 movs r5, 0x98 lsls r5, 5 ldr r1, _0804C0E8 @ =0x040000d4 ldr r6, _0804C0EC @ =0x80000800 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 @ =gUnknown_0820F798 ldr r2, _0804C0F4 @ =0x06009000 ldr r0, _0804C0E8 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0804C0EC @ =0x80000800 _0804C0C6: str r1, [r0, 0x8] ldr r0, [r0, 0x8] _0804C0CA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C0D0: .4byte gUnknown_03004828 _0804C0D4: .4byte REG_BG2CNT _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 @ =gUnknown_03004828 ldr r2, [r0] movs r1, 0x88 lsls r1, 1 adds r0, r2, r1 movs r3, 0 ldrsh r1, [r0, r3] ldr r0, _0804C12C @ =0x00000109 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 gUnknown_03004828 _0804C12C: .4byte 0x00000109 _0804C130: ldr r0, _0804C160 @ =gUnknown_03004828 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 gUnknown_03004828 thumb_func_end sub_804C0F8 thumb_func_start sub_804C164 sub_804C164: @ 804C164 push {lr} ldr r0, _0804C190 @ =gUnknown_082159A4 bl LoadSpriteSheet ldr r0, _0804C194 @ =gUnknown_082159F4 bl LoadSpriteSheet ldr r0, _0804C198 @ =gUnknown_08215A28 bl LoadSpriteSheet ldr r0, _0804C19C @ =gUnknown_08215A78 bl LoadSpriteSheet ldr r0, _0804C1A0 @ =gUnknown_082159AC bl LoadSpritePalette ldr r0, _0804C1A4 @ =gUnknown_082159B4 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 @ =gUnknown_03004828 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 @ =gStringVar1 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 @ =gLinkPlayers + 0x8 adds r1, r0 adds r0, r3, 0 bl StringCopy ldr r5, _0804C228 @ =gUnknown_020297D8 ldrb r0, [r5, 0x1] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r4, 0x64 muls r0, r4 ldr r1, _0804C22C @ =gEnemyParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _0804C230 @ =gStringVar3 mov r1, sp bl StringCopy10 ldrb r0, [r5] muls r0, r4 ldr r1, _0804C234 @ =gPlayerParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _0804C238 @ =gStringVar2 mov r1, sp bl StringCopy10 b _0804C278 .align 2, 0 _0804C21C: .4byte gUnknown_03004828 _0804C220: .4byte gStringVar1 _0804C224: .4byte gLinkPlayers + 0x8 _0804C228: .4byte gUnknown_020297D8 _0804C22C: .4byte gEnemyParty _0804C230: .4byte gStringVar3 _0804C234: .4byte gPlayerParty _0804C238: .4byte gStringVar2 _0804C23C: ldr r0, _0804C280 @ =gUnknown_0202E8CC ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 lsls r4, 2 ldr r0, _0804C284 @ =gIngameTrades adds r4, r0 ldr r0, _0804C288 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x2B bl StringCopy ldr r0, _0804C28C @ =gStringVar3 adds r1, r4, 0 bl StringCopy10 ldr r0, _0804C290 @ =gUnknown_0202E8CE ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0804C294 @ =gPlayerParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _0804C298 @ =gStringVar2 mov r1, sp bl StringCopy10 _0804C278: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804C280: .4byte gUnknown_0202E8CC _0804C284: .4byte gIngameTrades _0804C288: .4byte gStringVar1 _0804C28C: .4byte gStringVar3 _0804C290: .4byte gUnknown_0202E8CE _0804C294: .4byte gPlayerParty _0804C298: .4byte gStringVar2 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 @ =gUnknown_03004828 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 @ =_0804C2C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804C2C0: .4byte gUnknown_03004828 _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 @ =gSprites 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 @ =0x0000ff4c strh r1, [r0, 0x24] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldr r2, _0804C664 @ =gMonFrontPicCoords 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 GetCurrentMapMusic ldr r1, [r6] movs r7, 0x92 lsls r7, 1 adds r1, r7 strh r0, [r1] ldr r0, _0804C668 @ =0x00000179 bl PlayBGM bl _0804D570 .align 2, 0 _0804C65C: .4byte gSprites _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 @ =gSprites 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 gSprites _0804C6A0: ldr r2, _0804C6C4 @ =gSprites 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 gSprites _0804C6C8: ldr r5, _0804C6F8 @ =gStringVar4 ldr r1, _0804C6FC @ =gTradeText_WillBeSent adds r0, r5, 0 bl StringExpandPlaceholders ldr r4, _0804C700 @ =gUnknown_03004828 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 gStringVar4 _0804C6FC: .4byte gTradeText_WillBeSent _0804C700: .4byte gUnknown_03004828 _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 @ =gSprites 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 @ =0x000fffff 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 @ =gStringVar4 ldr r1, _0804C798 @ =gTradeText_ByeBye 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 gSprites _0804C790: .4byte 0x000fffff _0804C794: .4byte gStringVar4 _0804C798: .4byte gTradeText_ByeBye _0804C79C: ldr r7, _0804C810 @ =gSprites 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 @ =SpriteCallbackDummy 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 @ =gSpriteTemplate_821595C movs r1, 0x78 movs r2, 0x20 movs r3, 0 bl CreateSprite ldr r1, [r6] ldr r2, _0804C81C @ =0x00000103 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 @ =sub_804D738 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 gSprites _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 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xC4 movs r1, 0x14 strh r1, [r0] bl _0804D570 .align 2, 0 _0804C844: .4byte gUnknown_03004828 _0804C848: ldr r0, _0804C864 @ =gPaletteFade 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 gPaletteFade _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 @ =gPaletteFade 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 gPaletteFade _0804C89C: ldr r4, _0804C8B8 @ =gUnknown_03004828 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 gUnknown_03004828 _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 @ =gUnknown_03004828 ldr r4, [r0] movs r1, 0x8D lsls r1, 1 adds r0, r4, r1 bl _0804D16E .align 2, 0 _0804C8F0: .4byte gUnknown_03004828 _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 @ =gSpriteTemplate_8215A80 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 @ =gSprites 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 @ =REG_BLDCNT movs r3, 0xC8 lsls r3, 3 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r7, _0804C974 @ =0x0000040c adds r0, r7, 0 strh r0, [r1] ldr r1, [r6] bl _0804D53C .align 2, 0 _0804C96C: .4byte gSprites _0804C970: .4byte REG_BLDCNT _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 @ =gSpriteTemplate_8215A30 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 @ =gSpriteTemplate_82159BC movs r1, 0x80 movs r2, 0x50 movs r3, 0x3 bl CreateSprite ldr r4, _0804CA10 @ =gUnknown_03004828 ldr r1, [r4] adds r1, 0xBA strb r0, [r1] ldr r0, _0804CA14 @ =gSpriteTemplate_82159FC 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 @ =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim ldr r1, [r4] bl _0804D53C .align 2, 0 _0804CA0C: .4byte gSpriteTemplate_82159BC _0804CA10: .4byte gUnknown_03004828 _0804CA14: .4byte gSpriteTemplate_82159FC _0804CA18: .4byte gSprites _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 @ =0x00001641 adds r0, r7, 0 strh r0, [r1] bl _0804D570 .align 2, 0 _0804CA50: .4byte 0x00001641 _0804CA54: ldr r4, _0804CAB0 @ =gSprites 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 gSprites _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 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xC4 movs r1, 0x1E strh r1, [r0] bl _0804D570 .align 2, 0 _0804CAD4: .4byte gUnknown_03004828 _0804CAD8: ldr r0, _0804CB1C @ =gPaletteFade 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 @ =gSprites 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 gPaletteFade _0804CB20: .4byte gSprites _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 @ =gSpriteTemplate_82159FC adds r0, r5, 0 movs r1, 0x6F movs r2, 0xAA movs r3, 0 bl CreateSprite ldr r4, _0804CB6C @ =gUnknown_03004828 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 gUnknown_03004828 _0804CB70: ldr r0, _0804CBC0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804CB8E movs r0, 0x2E bl PlaySE ldr r0, _0804CBC4 @ =gUnknown_03004828 ldr r1, [r0] adds r1, 0xC4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0804CB8E: ldr r3, _0804CBC8 @ =gSprites ldr r0, _0804CBC4 @ =gUnknown_03004828 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 gPaletteFade _0804CBC4: .4byte gUnknown_03004828 _0804CBC8: .4byte gSprites _0804CBCC: ldr r5, _0804CC28 @ =gSprites 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 gSprites _0804CC2C: ldr r2, _0804CC3C @ =0x0000ffff movs r0, 0x1 movs r1, 0x10 bl BlendPalettes bl _0804D538 .align 2, 0 _0804CC3C: .4byte 0x0000ffff _0804CC40: ldr r2, _0804CC50 @ =0x0000ffff movs r0, 0x1 movs r1, 0 bl BlendPalettes bl _0804D538 .align 2, 0 _0804CC50: .4byte 0x0000ffff _0804CC54: ldr r2, _0804CC64 @ =0x0000ffff movs r0, 0x1 movs r1, 0x10 bl BlendPalettes bl _0804D538 .align 2, 0 _0804CC64: .4byte 0x0000ffff _0804CC68: ldr r5, _0804CCD8 @ =gUnknown_03004828 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 @ =gSprites 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 @ =gSpriteAffineAnimTable_8215AC0 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 gUnknown_03004828 _0804CCDC: .4byte gSprites _0804CCE0: .4byte gSpriteAffineAnimTable_8215AC0 _0804CCE4: ldr r0, [r5] adds r0, 0xB8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0804CD88 @ =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAffineAnim _0804CCFA: ldr r5, _0804CD8C @ =gUnknown_03004828 ldr r0, [r5] adds r0, 0xB9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0804CD88 @ =gSprites 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 @ =0x0000ffe0 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 gSprites _0804CD8C: .4byte gUnknown_03004828 _0804CD90: .4byte 0x0000ffe0 _0804CD94: ldr r4, _0804CE5C @ =gSprites 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 PlaySE _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 @ =0x0000ffff movs r0, 0x1 movs r1, 0 bl BlendPalettes b _0804D570 .align 2, 0 _0804CE5C: .4byte gSprites _0804CE60: .4byte 0x0000ffff _0804CE64: ldr r4, _0804CEE8 @ =gSprites 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 gSprites _0804CEEC: ldr r0, _0804CF58 @ =gPaletteFade 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 @ =gSpriteTemplate_82159BC 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 @ =gSpriteTemplate_82159FC 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 @ =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim b _0804D570 .align 2, 0 _0804CF58: .4byte gPaletteFade _0804CF5C: .4byte gSpriteTemplate_82159BC _0804CF60: .4byte gSpriteTemplate_82159FC _0804CF64: .4byte gSprites _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 @ =0x00001641 adds r0, r7, 0 strh r0, [r1] movs r0, 0x1 bl sub_804C0F8 ldr r0, _0804CF9C @ =gPaletteFade 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 gPaletteFade _0804CFA0: movs r0, 0x1 bl sub_804C0F8 ldr r2, _0804CFF4 @ =gSprites ldr r0, _0804CFF8 @ =gUnknown_03004828 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 gSprites _0804CFF8: .4byte gUnknown_03004828 _0804CFFC: movs r0, 0x1 bl sub_804C0F8 ldr r0, _0804D024 @ =gUnknown_03004828 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 gUnknown_03004828 _0804D028: ldr r0, [r6] adds r0, 0xBA ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0804D050 @ =gSprites 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 gSprites _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 @ =gSpriteTemplate_8215A30 movs r1, 0x80 movs r2, 0x41 movs r3, 0 bl CreateSprite ldr r1, [r6] adds r1, 0xBC strb r0, [r1] _0804D0B0: ldr r2, _0804D0CC @ =gSprites 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 @ =sub_804B0E0 str r1, [r0] b _0804D570 .align 2, 0 _0804D0C8: .4byte gSpriteTemplate_8215A30 _0804D0CC: .4byte gSprites _0804D0D0: .4byte sub_804B0E0 _0804D0D4: ldr r0, _0804D0F4 @ =gSpriteTemplate_8215A80 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r2, _0804D0F8 @ =gUnknown_03004828 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 gUnknown_03004828 _0804D0FC: ldr r2, _0804D138 @ =gSprites 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 PlaySE b _0804D570 .align 2, 0 _0804D138: .4byte gSprites _0804D13C: ldr r1, [r6] movs r3, 0x8D lsls r3, 1 adds r2, r1, r3 ldrh r3, [r2] ldr r0, _0804D154 @ =0x000003ff 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 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xC4 movs r1, 0x3C strh r1, [r0] b _0804D570 .align 2, 0 _0804D1A0: .4byte gUnknown_03004828 _0804D1A4: ldr r0, _0804D1C0 @ =gPaletteFade 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 gPaletteFade _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 @ =gPaletteFade 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 gPaletteFade _0804D1F4: ldr r0, _0804D290 @ =gSpriteTemplate_821595C movs r2, 0x8 negs r2, r2 movs r1, 0x78 movs r3, 0 bl CreateSprite ldr r6, _0804D294 @ =gUnknown_03004828 ldr r1, [r6] ldr r5, _0804D298 @ =0x00000103 adds r1, r5 movs r7, 0 mov r8, r7 strb r0, [r1] ldr r4, _0804D29C @ =gSprites 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 @ =sub_804D80C 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 @ =0x0000ffff 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 gUnknown_03004828 _0804D298: .4byte 0x00000103 _0804D29C: .4byte gSprites _0804D2A0: .4byte sub_804D80C _0804D2A4: .4byte 0x0000ffff _0804D2A8: ldr r2, _0804D2D8 @ =gSprites ldr r0, [r6] ldr r1, _0804D2DC @ =0x00000103 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 @ =0x0000ffff str r1, [sp] movs r1, 0x1 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, [r6] b _0804D53C .align 2, 0 _0804D2D8: .4byte gSprites _0804D2DC: .4byte 0x00000103 _0804D2E0: .4byte 0x0000ffff _0804D2E4: ldr r2, _0804D308 @ =gSprites ldr r3, [r6] ldr r7, _0804D30C @ =0x00000103 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 @ =SpriteCallbackDummy cmp r1, r0 beq _0804D302 b _0804D570 _0804D302: adds r1, r3, 0 b _0804D53C .align 2, 0 _0804D308: .4byte gSprites _0804D30C: .4byte 0x00000103 _0804D310: .4byte SpriteCallbackDummy _0804D314: ldr r4, _0804D3B4 @ =gSprites 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 @ =gMonFrontPicCoords 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 @ =0x000fffff str r2, [sp, 0xC] movs r2, 0x78 movs r3, 0x54 bl CreatePokeballSprite ldr r0, [r6] ldr r5, _0804D3C0 @ =0x00000103 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 gSprites _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 @ =gStringVar4 ldr r1, _0804D418 @ =gTradeText_SentOverPoke 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 gStringVar4 _0804D418: .4byte gTradeText_SentOverPoke _0804D41C: ldr r1, [r6] adds r1, 0xC0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x4 bne _0804D430 ldr r0, _0804D480 @ =0x00000173 bl PlayFanfare _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 @ =gStringVar4 ldr r1, _0804D488 @ =gTradeText_TakeGoodCare 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 gStringVar4 _0804D488: .4byte gTradeText_TakeGoodCare _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 @ =gMain 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 gMain _0804D4CC: ldr r0, _0804D510 @ =gUnknown_0202E8CE ldrb r0, [r0] movs r1, 0 bl sub_804BA94 ldr r1, _0804D514 @ =gUnknown_03005E94 ldr r0, _0804D518 @ =sub_804BBCC str r0, [r1] ldr r7, _0804D51C @ =gUnknown_020297D8 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _0804D520 @ =gPlayerParty 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 @ =gUnknown_03004828 ldr r1, [r1] adds r1, 0xB9 ldrb r2, [r1] adds r1, r4, 0 bl sub_81120E4 b _0804D538 .align 2, 0 _0804D510: .4byte gUnknown_0202E8CE _0804D514: .4byte gUnknown_03005E94 _0804D518: .4byte sub_804BBCC _0804D51C: .4byte gUnknown_020297D8 _0804D520: .4byte gPlayerParty _0804D524: .4byte gUnknown_03004828 _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 @ =gUnknown_03004828 ldr r1, [r0] _0804D53C: adds r1, 0xC4 _0804D53E: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0804D570 .align 2, 0 _0804D548: .4byte gUnknown_03004828 _0804D54C: ldr r0, _0804D580 @ =gPaletteFade 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 PlayBGM ldr r0, _0804D584 @ =c2_exit_to_overworld_2_switch 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 gPaletteFade _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 @ =gMain ldr r2, _0804D5A4 @ =0x0000043c adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _0804D5A8 cmp r0, 0x4 beq _0804D5B8 b _0804D614 .align 2, 0 _0804D5A0: .4byte gMain _0804D5A4: .4byte 0x0000043c _0804D5A8: movs r0, 0x4 strb r0, [r1] ldr r1, _0804D5B4 @ =gUnknown_3001BB4 movs r0, 0x1 b _0804D612 .align 2, 0 _0804D5B4: .4byte gUnknown_3001BB4 _0804D5B8: ldr r0, _0804D5F4 @ =gUnknown_03005E94 ldr r1, _0804D5F8 @ =sub_804DC88 mov r8, r1 str r1, [r0] ldr r7, _0804D5FC @ =gUnknown_020297D8 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _0804D600 @ =gPlayerParty 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 @ =gUnknown_03004828 ldr r1, [r1] adds r1, 0xB9 ldrb r2, [r1] adds r1, r4, 0 bl sub_81120E4 b _0804D60E .align 2, 0 _0804D5F4: .4byte gUnknown_03005E94 _0804D5F8: .4byte sub_804DC88 _0804D5FC: .4byte gUnknown_020297D8 _0804D600: .4byte gPlayerParty _0804D604: .4byte gUnknown_03004828 _0804D608: mov r0, r8 bl SetMainCallback2 _0804D60E: ldr r1, _0804D638 @ =gUnknown_020297D8 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 gUnknown_020297D8 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 @ =gBlockRecvBuffer ldrh r1, [r4] ldr r0, _0804D6AC @ =0x0000dcba cmp r1, r0 bne _0804D664 ldr r0, _0804D6B0 @ =sub_804D588 bl SetMainCallback2 _0804D664: ldrh r1, [r4] ldr r0, _0804D6B4 @ =0x0000abcd cmp r1, r0 bne _0804D674 ldr r0, _0804D6B8 @ =gUnknown_03004828 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 @ =gBlockRecvBuffer movs r1, 0x80 lsls r1, 1 adds r0, r1 ldrh r1, [r0] ldr r0, _0804D6B4 @ =0x0000abcd cmp r1, r0 bne _0804D69C ldr r0, _0804D6B8 @ =gUnknown_03004828 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 gBlockRecvBuffer _0804D6AC: .4byte 0x0000dcba _0804D6B0: .4byte sub_804D588 _0804D6B4: .4byte 0x0000abcd _0804D6B8: .4byte gUnknown_03004828 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 @ =SpriteCallbackDummy 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 @ =gTradeBallVerticalVelocityTable 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 PlaySE _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 PlaySE ldr r0, _0804D7A4 @ =sub_804D7AC 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 @ =0x0000ffff 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 gTradeBallVerticalVelocityTable _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 @ =gTradeBallVerticalVelocityTable 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 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xC4 movs r1, 0xE strh r1, [r0] _0804D7FE: pop {r4} pop {r0} bx r0 .align 2, 0 _0804D804: .4byte gTradeBallVerticalVelocityTable _0804D808: .4byte gUnknown_03004828 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 PlaySE b _0804D88C _0804D83C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x42 bne _0804D84A movs r0, 0x39 bl PlaySE _0804D84A: movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x5C bne _0804D858 movs r0, 0x3A bl PlaySE _0804D858: movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0x6B bne _0804D866 movs r0, 0x3B bl PlaySE _0804D866: ldr r1, _0804D894 @ =gTradeBallVerticalVelocityTable 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 @ =SpriteCallbackDummy str r0, [r4, 0x1C] _0804D88C: pop {r4} pop {r0} bx r0 .align 2, 0 _0804D894: .4byte gTradeBallVerticalVelocityTable _0804D898: .4byte SpriteCallbackDummy thumb_func_end sub_804D80C thumb_func_start sub_804D89C sub_804D89C: @ 804D89C push {r4-r6,lr} ldr r0, _0804D8D0 @ =gUnknown_0202E8CC ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 lsls r4, 2 ldr r0, _0804D8D4 @ =gIngameTrades adds r4, r0 ldr r0, _0804D8D8 @ =gStringVar1 ldrh r1, [r4, 0x38] movs r6, 0xB muls r1, r6 ldr r5, _0804D8DC @ =gSpeciesNames adds r1, r5 bl StringCopy ldr r0, _0804D8E0 @ =gStringVar2 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 gUnknown_0202E8CC _0804D8D4: .4byte gIngameTrades _0804D8D8: .4byte gStringVar1 _0804D8DC: .4byte gSpeciesNames _0804D8E0: .4byte gStringVar2 thumb_func_end sub_804D89C thumb_func_start sub_804D8E4 sub_804D8E4: @ 804D8E4 push {r4,lr} sub sp, 0x20 ldr r0, _0804D92C @ =gUnknown_0202E8CC ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 lsls r4, 2 ldr r0, _0804D930 @ =gIngameTrades adds r4, r0 ldr r0, _0804D934 @ =gUnknown_0202E8CE ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0804D938 @ =gPlayerParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _0804D93C @ =gStringVar1 mov r1, sp bl StringCopy10 ldr r0, _0804D940 @ =gStringVar2 ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _0804D944 @ =gSpeciesNames adds r1, r2 bl StringCopy add sp, 0x20 pop {r4} pop {r0} bx r0 .align 2, 0 _0804D92C: .4byte gUnknown_0202E8CC _0804D930: .4byte gIngameTrades _0804D934: .4byte gUnknown_0202E8CE _0804D938: .4byte gPlayerParty _0804D93C: .4byte gStringVar1 _0804D940: .4byte gStringVar2 _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 @ =gIngameTrades adds r5, r2, r1 movs r1, 0x64 muls r0, r1 ldr r1, _0804DAA8 @ =gPlayerParty adds r0, r1 movs r1, 0x38 bl GetMonData adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 add r4, sp, 0x34 movs r0, 0xFE strb r0, [r4] ldr r6, _0804DAAC @ =gEnemyParty 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 CreateMon adds r2, r5, 0 adds r2, 0xE adds r0, r6, 0 movs r1, 0x27 bl SetMonData adds r2, r5, 0 adds r2, 0xF adds r0, r6, 0 movs r1, 0x28 bl SetMonData adds r2, r5, 0 adds r2, 0x10 adds r0, r6, 0 movs r1, 0x29 bl SetMonData adds r2, r5, 0 adds r2, 0x11 adds r0, r6, 0 movs r1, 0x2A bl SetMonData adds r2, r5, 0 adds r2, 0x12 adds r0, r6, 0 movs r1, 0x2B bl SetMonData adds r2, r5, 0 adds r2, 0x13 adds r0, r6, 0 movs r1, 0x2C bl SetMonData adds r0, r6, 0 movs r1, 0x2 adds r2, r5, 0 bl SetMonData adds r2, r5, 0 adds r2, 0x2B adds r0, r6, 0 movs r1, 0x7 bl SetMonData adds r2, r5, 0 adds r2, 0x36 adds r0, r6, 0 movs r1, 0x31 bl SetMonData adds r2, r5, 0 adds r2, 0x14 adds r0, r6, 0 movs r1, 0x2E bl SetMonData adds r2, r5, 0 adds r2, 0x1D adds r0, r6, 0 movs r1, 0x17 bl SetMonData adds r2, r5, 0 adds r2, 0x1E adds r0, r6, 0 movs r1, 0x18 bl SetMonData adds r2, r5, 0 adds r2, 0x1C adds r0, r6, 0 movs r1, 0x16 bl SetMonData adds r2, r5, 0 adds r2, 0x1F adds r0, r6, 0 movs r1, 0x21 bl SetMonData adds r2, r5, 0 adds r2, 0x20 adds r0, r6, 0 movs r1, 0x2F bl SetMonData adds r2, r5, 0 adds r2, 0x37 adds r0, r6, 0 movs r1, 0x30 bl SetMonData adds r0, r6, 0 movs r1, 0x23 adds r2, r4, 0 bl SetMonData 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 @ =gUnknown_02029700 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 SetMonData adds r2, r5, 0 adds r2, 0x28 adds r0, r6, 0 movs r1, 0xC bl SetMonData b _0804DAC0 .align 2, 0 _0804DAA4: .4byte gIngameTrades _0804DAA8: .4byte gPlayerParty _0804DAAC: .4byte gEnemyParty _0804DAB0: .4byte gUnknown_02029700 _0804DAB4: adds r2, r5, 0 adds r2, 0x28 adds r0, r6, 0 movs r1, 0xC bl SetMonData _0804DAC0: ldr r0, _0804DAD0 @ =gEnemyParty bl CalculateMonStats add sp, 0x38 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804DAD0: .4byte gEnemyParty 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 @ =gIngameTradeMail 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 gIngameTradeMail thumb_func_end sub_804DAD4 thumb_func_start sub_804DB2C sub_804DB2C: @ 804DB2C push {r4-r6,lr} ldr r6, _0804DB58 @ =gUnknown_0202E8CE ldrh r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _0804DB5C @ =gPlayerParty adds r0, r4 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804DB60 ldrh r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 b _0804DB62 .align 2, 0 _0804DB58: .4byte gUnknown_0202E8CE _0804DB5C: .4byte gPlayerParty _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 @ =gUnknown_0202E8CE ldrb r0, [r0] ldr r1, _0804DB80 @ =gUnknown_0202E8CC ldrb r1, [r1] bl sub_804D948 pop {r0} bx r0 .align 2, 0 _0804DB7C: .4byte gUnknown_0202E8CE _0804DB80: .4byte gUnknown_0202E8CC 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 @ =gUnknown_03004828 ldr r0, [r5] adds r0, 0xB8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0804DC08 @ =gSprites 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 @ =gUnknown_020297D8 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 @ =0x0000abcd strh r1, [r2] adds r0, 0xBD strb r6, [r0] ldr r0, _0804DC14 @ =sub_804DC18 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 gUnknown_03004828 _0804DC08: .4byte gSprites _0804DC0C: .4byte gUnknown_020297D8 _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 @ =gUnknown_03004828 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x9C ldrh r1, [r0] ldr r0, _0804DC80 @ =0x00000101 cmp r1, r0 bne _0804DC64 adds r1, r2, 0 adds r1, 0x9E ldr r0, _0804DC84 @ =0x0000dcba 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 gUnknown_03004828 _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 @ =gMain ldr r2, _0804DCAC @ =0x0000043c 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 @ =_0804DCB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804DCA8: .4byte gMain _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 @ =gUnknown_03004828 ldr r0, _0804DE8C @ =0x0201f000 str r0, [r5] ldr r1, _0804DE90 @ =0x0000043c 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 @ =gStringVar4 ldr r1, _0804DE98 @ =gOtherText_LinkStandby2 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 gUnknown_03004828 _0804DE8C: .4byte 0x0201f000 _0804DE90: .4byte 0x0000043c _0804DE94: .4byte gStringVar4 _0804DE98: .4byte gOtherText_LinkStandby2 _0804DE9C: bl sub_80084A4 ldr r0, _0804DEAC @ =gMain ldr r2, _0804DEB0 @ =0x0000043c adds r0, r2 movs r2, 0 movs r1, 0x64 b _0804DFEE .align 2, 0 _0804DEAC: .4byte gMain _0804DEB0: .4byte 0x0000043c _0804DEB4: ldr r0, _0804DEE8 @ =gUnknown_03004828 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 @ =0x0000043c 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 @ =gMain ldr r2, _0804DEEC @ =0x0000043c adds r0, r2 b _0804DF06 .align 2, 0 _0804DEE8: .4byte gUnknown_03004828 _0804DEEC: .4byte 0x0000043c _0804DEF0: .4byte gMain _0804DEF4: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0804DF00 b _0804E11A _0804DF00: ldr r0, _0804DF0C @ =gMain ldr r1, _0804DF10 @ =0x0000043c adds r0, r1 _0804DF06: movs r1, 0x2 strb r1, [r0] b _0804E11A .align 2, 0 _0804DF0C: .4byte gMain _0804DF10: .4byte 0x0000043c _0804DF14: ldr r0, _0804DF48 @ =0x0000043c adds r1, r2, r0 movs r0, 0x32 strb r0, [r1] ldr r4, _0804DF4C @ =gUnknown_03004828 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 @ =gSystemText_Saving 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 gUnknown_03004828 _0804DF50: .4byte gSystemText_Saving _0804DF54: bl sub_8047A1C movs r0, 0x15 bl sav12_xor_increment bl sub_8125D80 ldr r1, _0804DF74 @ =gMain ldr r2, _0804DF78 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] b _0804DFF0 .align 2, 0 _0804DF74: .4byte gMain _0804DF78: .4byte 0x0000043c _0804DF7C: ldr r0, _0804DF94 @ =gUnknown_03004828 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 @ =0x0000043c adds r1, r2, r0 b _0804E0FA .align 2, 0 _0804DF94: .4byte gUnknown_03004828 _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 @ =gMain ldr r1, _0804DFBC @ =0x0000043c adds r0, r1 movs r1, 0x4 strb r1, [r0] b _0804E11A .align 2, 0 _0804DFB8: .4byte gMain _0804DFBC: .4byte 0x0000043c _0804DFC0: ldr r0, _0804DFD4 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xC0 str r1, [r0] ldr r0, _0804DFD8 @ =gMain ldr r2, _0804DFDC @ =0x0000043c adds r0, r2 movs r1, 0x33 strb r1, [r0] b _0804E11A .align 2, 0 _0804DFD4: .4byte gUnknown_03004828 _0804DFD8: .4byte gMain _0804DFDC: .4byte 0x0000043c _0804DFE0: bl sub_8125DDC ldr r0, _0804DFFC @ =gMain ldr r1, _0804E000 @ =0x0000043c adds r0, r1 movs r2, 0 movs r1, 0x28 _0804DFEE: strb r1, [r0] _0804DFF0: ldr r0, _0804E004 @ =gUnknown_03004828 ldr r0, [r0] adds r0, 0xC0 str r2, [r0] b _0804E11A .align 2, 0 _0804DFFC: .4byte gMain _0804E000: .4byte 0x0000043c _0804E004: .4byte gUnknown_03004828 _0804E008: ldr r0, _0804E02C @ =gUnknown_03004828 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 @ =0x0000043c adds r1, r2, r0 movs r0, 0x29 strb r0, [r1] b _0804E11A .align 2, 0 _0804E02C: .4byte gUnknown_03004828 _0804E030: .4byte 0x0000043c _0804E034: bl sub_80084A4 ldr r0, _0804E044 @ =gMain ldr r1, _0804E048 @ =0x0000043c adds r0, r1 movs r1, 0x2A strb r1, [r0] b _0804E11A .align 2, 0 _0804E044: .4byte gMain _0804E048: .4byte 0x0000043c _0804E04C: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _0804E11A bl sub_8125E04 ldr r1, _0804E06C @ =gUnknown_3001BB4 movs r0, 0 strb r0, [r1] ldr r0, _0804E070 @ =gMain ldr r2, _0804E074 @ =0x0000043c adds r0, r2 movs r1, 0x5 strb r1, [r0] b _0804E11A .align 2, 0 _0804E06C: .4byte gUnknown_3001BB4 _0804E070: .4byte gMain _0804E074: .4byte 0x0000043c _0804E078: ldr r0, _0804E098 @ =gUnknown_03004828 ldr r1, [r0] adds r1, 0xC0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x3C bls _0804E11A ldr r0, _0804E09C @ =0x0000043c adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_80084A4 b _0804E11A .align 2, 0 _0804E098: .4byte gUnknown_03004828 _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 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804E11A movs r0, 0x3 bl FadeOutBGM ldr r1, _0804E0DC @ =gMain ldr r0, _0804E0E0 @ =0x0000043c adds r1, r0 b _0804E0FA .align 2, 0 _0804E0D8: .4byte gPaletteFade _0804E0DC: .4byte gMain _0804E0E0: .4byte 0x0000043c _0804E0E4: bl IsBGMStopped lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804E11A bl sub_800832C _0804E0F4: ldr r1, _0804E104 @ =gMain ldr r2, _0804E108 @ =0x0000043c adds r1, r2 _0804E0FA: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804E11A .align 2, 0 _0804E104: .4byte gMain _0804E108: .4byte 0x0000043c _0804E10C: ldr r0, _0804E13C @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0804E11A ldr r0, _0804E140 @ =sub_804E144 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 gReceivedRemoteLinkPlayers _0804E140: .4byte sub_804E144 thumb_func_end sub_804DC88 thumb_func_start sub_804E144 sub_804E144: @ 804E144 push {lr} ldr r0, _0804E16C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804E158 ldr r0, _0804E170 @ =sub_8047CD8 bl SetMainCallback2 _0804E158: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 _0804E16C: .4byte gPaletteFade _0804E170: .4byte sub_8047CD8 thumb_func_end sub_804E144 thumb_func_start sub_804E174 sub_804E174: @ 804E174 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _0804E19C @ =sub_804E1A0 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 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804E1C4 ldr r0, _0804E1D0 @ =sub_804B790 bl SetMainCallback2 ldr r1, _0804E1D4 @ =gUnknown_0300485C ldr r0, _0804E1D8 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 bl DestroyTask _0804E1C4: pop {r4} pop {r0} bx r0 .align 2, 0 _0804E1CC: .4byte gPaletteFade _0804E1D0: .4byte sub_804B790 _0804E1D4: .4byte gUnknown_0300485C _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 @ =gUnknown_020297D8 ldrb r0, [r0, 0x1] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0804E224 @ =gEnemyParty adds r0, r1 adds r1, r4, 0 adds r1, 0x43 bl GetMonData 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 @ =0x0000083b bl FlagSet _0804E21A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804E220: .4byte gUnknown_020297D8 _0804E224: .4byte gEnemyParty _0804E228: .4byte 0x0000083b thumb_func_end sub_804E1DC thumb_func_start sub_804E22C sub_804E22C: @ 804E22C push {r4,lr} ldr r0, _0804E26C @ =gUnknown_08D00000 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r0, _0804E270 @ =gUnknown_08D00524 ldr r4, _0804E274 @ =0x02000000 movs r2, 0x80 lsls r2, 4 adds r1, r4, 0 bl CpuSet ldr r1, _0804E278 @ =0x06002800 ldr r0, _0804E27C @ =0x040000d4 str r4, [r0] str r1, [r0, 0x4] ldr r1, _0804E280 @ =0x80000280 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _0804E284 @ =gUnknown_08D004E0 movs r1, 0 movs r2, 0x20 bl LoadCompressedPalette ldr r1, _0804E288 @ =REG_BG1CNT ldr r2, _0804E28C @ =0x00000502 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 REG_BG1CNT _0804E28C: .4byte 0x00000502 thumb_func_end sub_804E22C thumb_func_start sub_804E290 sub_804E290: @ 804E290 push {lr} ldr r0, _0804E2B0 @ =gMPlay_SE2 ldr r1, _0804E2B4 @ =0x0000ffff ldr r2, _0804E2B8 @ =gUnknown_03004854 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 gMPlay_SE2 _0804E2B4: .4byte 0x0000ffff _0804E2B8: .4byte gUnknown_03004854 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 @ =gUnknown_03004854 ldr r0, [r1] ldrb r0, [r0, 0x1] mov r12, r1 cmp r0, 0x9 bls _0804E2FC b _0804E4F4 _0804E2FC: lsls r0, 2 ldr r1, _0804E30C @ =_0804E310 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804E308: .4byte gUnknown_03004854 _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 @ =gUnknown_08E6C100 ldr r1, _0804E348 @ =0x02010000 bl sub_800D238 b _0804E49E .align 2, 0 _0804E344: .4byte gUnknown_08E6C100 _0804E348: .4byte 0x02010000 _0804E34C: ldr r1, _0804E36C @ =gUnknown_08215C2C ldr r2, _0804E370 @ =0x06004000 ldr r0, _0804E374 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0804E378 @ =0x80000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _0804E37C @ =gUnknown_08215C0C 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 @ =0x02010000 movs r4, 0xC0 lsls r4, 19 movs r5, 0x80 lsls r5, 6 ldr r1, _0804E3BC @ =0x040000d4 ldr r6, _0804E3C0 @ =0x80000800 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 @ =gUnknown_08E6C920 ldr r1, _0804E3D4 @ =0x02010000 bl sub_800D238 b _0804E49E .align 2, 0 _0804E3D0: .4byte gUnknown_08E6C920 _0804E3D4: .4byte 0x02010000 _0804E3D8: ldr r0, _0804E3E4 @ =gUnknown_08E6D354 ldr r1, _0804E3E8 @ =0x02013000 bl sub_800D238 b _0804E49E .align 2, 0 _0804E3E4: .4byte gUnknown_08E6D354 _0804E3E8: .4byte 0x02013000 _0804E3EC: ldr r1, _0804E400 @ =0x02010000 ldr r2, _0804E404 @ =0x0600e000 ldr r0, _0804E408 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0804E40C @ =0x80000800 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 @ =0x02011000 ldr r2, _0804E428 @ =0x0600f000 ldr r0, _0804E42C @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0804E430 @ =0x80000800 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 @ =0x02013000 movs r2, 0 adds r6, r3, 0 ldr r7, _0804E478 @ =gUnknown_0821602C movs r0, 0x80 lsls r0, 1 adds r5, r0, 0 ldr r4, _0804E47C @ =0x0000027f _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 @ =0x06006000 ldr r0, _0804E484 @ =0x040000d4 str r6, [r0] str r1, [r0, 0x4] ldr r1, _0804E488 @ =0x80000280 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 @ =gUnknown_082163DC bl LoadSpriteSheet ldr r0, _0804E4B0 @ =gUnknown_082164F4 bl LoadSpriteSheet ldr r0, _0804E4B4 @ =gUnknown_08216454 bl LoadSpriteSheet _0804E49E: ldr r0, _0804E4B8 @ =gUnknown_03004854 _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 gUnknown_03004854 _0804E4BC: ldr r0, _0804E4E0 @ =gUnknown_08216540 bl LoadSpriteSheet ldr r0, _0804E4E4 @ =gUnknown_08216574 bl LoadSpriteSheet ldr r0, _0804E4E8 @ =gUnknown_082163EC bl LoadSpritePalette ldr r0, _0804E4EC @ =gUnknown_082163E4 bl LoadSpritePalette ldr r0, _0804E4F0 @ =gUnknown_03004854 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 gUnknown_03004854 _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 @ =0x00001341 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 @ =0x00000c0d adds r0, r2, 0 strh r0, [r1] ldr r0, _0804E534 @ =REG_BG0HOFS 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 REG_BG0HOFS thumb_func_end sub_804E4FC thumb_func_start sub_804E538 sub_804E538: @ 804E538 push {lr} ldr r1, _0804E55C @ =gUnknown_03004854 ldr r0, _0804E560 @ =0x02018000 str r0, [r1] adds r2, r0, 0 adds r2, 0x6F movs r1, 0 strb r1, [r0] strb r1, [r2] ldr r0, _0804E564 @ =gUnknown_0202E8CC ldrb r0, [r0] bl sub_804E884 ldr r0, _0804E568 @ =sub_804E56C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0804E55C: .4byte gUnknown_03004854 _0804E560: .4byte 0x02018000 _0804E564: .4byte gUnknown_0202E8CC _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 @ =gUnknown_03004854 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x6 bls _0804E57C b _0804E71A _0804E57C: lsls r0, 2 ldr r1, _0804E58C @ =_0804E590 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804E588: .4byte gUnknown_03004854 _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 @ =gWindowConfig_81E6F68 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow ldr r3, _0804E610 @ =gUnknown_03004854 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 gUnknown_03004854 _0804E614: bl sub_804E2EC lsls r0, 24 cmp r0, 0 bne _0804E620 b _0804E71A _0804E620: movs r4, 0 ldr r5, _0804E668 @ =gUnknown_082162E4 ldr r6, _0804E66C @ =gUnknown_03004854 _0804E626: ldrb r1, [r5] ldrb r2, [r5, 0x1] ldr r0, _0804E670 @ =gSpriteTemplate_82163F4 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 @ =gSprites 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 @ =sub_804E2BC bl SetVBlankCallback b _0804E6BE .align 2, 0 _0804E668: .4byte gUnknown_082162E4 _0804E66C: .4byte gUnknown_03004854 _0804E670: .4byte gSpriteTemplate_82163F4 _0804E674: .4byte gSprites _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 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804E71A b _0804E6BE .align 2, 0 _0804E6A4: .4byte gPaletteFade _0804E6A8: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _0804E6CC @ =gOtherText_BlenderChooseBerry movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage _0804E6BE: ldr r0, _0804E6D0 @ =gUnknown_03004854 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804E71A .align 2, 0 _0804E6CC: .4byte gOtherText_BlenderChooseBerry _0804E6D0: .4byte gUnknown_03004854 _0804E6D4: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _0804E71A ldr r0, _0804E6FC @ =gUnknown_03004854 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 gUnknown_03004854 _0804E700: ldr r0, _0804E730 @ =gPaletteFade 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 @ =gUnknown_03004854 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 gPaletteFade _0804E734: .4byte gUnknown_03004854 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 PlaySE _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 @ =sub_804E738 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 @ =gSprites add r8, r0 ldr r5, _0804E840 @ =gUnknown_08216594 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 gSprites _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 @ =gLinkPlayers 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 gLinkPlayers _0804E8B0: cmp r1, 0x2 beq _0804E8F8 cmp r1, 0x3 beq _0804E93C b _0804E974 _0804E8BA: ldr r0, _0804E8C0 @ =gUnknown_03004834 strb r1, [r0] b _0804E974 .align 2, 0 _0804E8C0: .4byte gUnknown_03004834 _0804E8C4: ldr r0, _0804E8E4 @ =gUnknown_03004834 strb r1, [r0] ldr r0, _0804E8E8 @ =gUnknown_03004854 ldr r0, [r0] adds r0, 0x88 movs r1, 0x2 strb r1, [r0] ldr r4, _0804E8EC @ =gLinkPlayers + 0x8 ldr r1, _0804E8F0 @ =gSaveBlock2 adds r0, r4, 0 bl StringCopy adds r4, 0x1C ldr r0, _0804E8F4 @ =gUnknown_082162B8 ldr r1, [r0] b _0804E920 .align 2, 0 _0804E8E4: .4byte gUnknown_03004834 _0804E8E8: .4byte gUnknown_03004854 _0804E8EC: .4byte gLinkPlayers + 0x8 _0804E8F0: .4byte gSaveBlock2 _0804E8F4: .4byte gUnknown_082162B8 _0804E8F8: ldr r0, _0804E928 @ =gUnknown_03004834 strb r1, [r0] ldr r0, _0804E92C @ =gUnknown_03004854 ldr r0, [r0] adds r0, 0x88 movs r1, 0x3 strb r1, [r0] ldr r4, _0804E930 @ =gLinkPlayers + 0x8 ldr r1, _0804E934 @ =gSaveBlock2 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 adds r0, 0x1C ldr r5, _0804E938 @ =gUnknown_082162B8 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 gUnknown_03004834 _0804E92C: .4byte gUnknown_03004854 _0804E930: .4byte gLinkPlayers + 0x8 _0804E934: .4byte gSaveBlock2 _0804E938: .4byte gUnknown_082162B8 _0804E93C: ldr r0, _0804E97C @ =gUnknown_03004834 strb r1, [r0] ldr r0, _0804E980 @ =gUnknown_03004854 ldr r0, [r0] adds r0, 0x88 movs r1, 0x4 strb r1, [r0] ldr r4, _0804E984 @ =gLinkPlayers + 0x8 ldr r1, _0804E988 @ =gSaveBlock2 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 adds r0, 0x1C ldr r5, _0804E98C @ =gUnknown_082162B8 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 gUnknown_03004834 _0804E980: .4byte gUnknown_03004854 _0804E984: .4byte gLinkPlayers + 0x8 _0804E988: .4byte gSaveBlock2 _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 @ =gUnknown_03004854 ldr r0, _0804E9DC @ =0x02018000 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 @ =gUnknown_0202E8CC 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 @ =sub_804E9F8 bl SetMainCallback2 b _0804E9EE .align 2, 0 _0804E9D8: .4byte gUnknown_03004854 _0804E9DC: .4byte 0x02018000 _0804E9E0: .4byte gUnknown_0202E8CC _0804E9E4: .4byte sub_804E9F8 _0804E9E8: ldr r0, _0804E9F4 @ =sub_804F378 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 @ =gUnknown_03004854 ldr r0, [r1] ldrb r0, [r0] mov r8, r1 cmp r0, 0x66 bls _0804EA0E b _0804F0CE _0804EA0E: lsls r0, 2 ldr r1, _0804EA1C @ =_0804EA20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804EA18: .4byte gUnknown_03004854 _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 @ =sub_804E2BC bl SetVBlankCallback ldr r4, _0804EC64 @ =gWindowConfig_81E6F68 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow ldr r1, _0804EC68 @ =gLinkType ldr r2, _0804EC6C @ =0x00004422 adds r0, r2, 0 strh r0, [r1] ldr r3, _0804EC70 @ =gUnknown_03004854 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 gLinkType _0804EC6C: .4byte 0x00004422 _0804EC70: .4byte gUnknown_03004854 _0804EC74: bl sub_804E2EC lsls r0, 24 cmp r0, 0 bne _0804EC80 b _0804F0CE _0804EC80: ldr r0, _0804EC90 @ =gUnknown_03004854 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8051474 b _0804F0CE .align 2, 0 _0804EC90: .4byte gUnknown_03004854 _0804EC94: movs r5, 0 ldr r4, _0804ECD8 @ =gUnknown_082162E4 ldr r6, _0804ECDC @ =gUnknown_03004854 _0804EC9A: ldrb r1, [r4] ldrb r2, [r4, 0x1] ldr r0, _0804ECE0 @ =gSpriteTemplate_82163F4 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 @ =gSprites 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 gUnknown_03004854 _0804ECE0: .4byte gSpriteTemplate_82163F4 _0804ECE4: .4byte gSprites _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 @ =gPaletteFade 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 gPaletteFade _0804ED14: movs r0, 0 movs r1, 0xD movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _0804ED40 @ =gOtherText_LinkStandby3 movs r1, 0x1 movs r2, 0xE bl MenuPrint ldr r2, _0804ED44 @ =gUnknown_03004854 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 gOtherText_LinkStandby3 _0804ED44: .4byte gUnknown_03004854 _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 @ =word_203855E ldrh r1, [r1] bl sub_804E844 ldr r0, _0804ED90 @ =gBlockSendBuffer 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 word_203855E _0804ED90: .4byte gBlockSendBuffer _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 MenuZeroFillScreen 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 @ =gBlockRecvBuffer 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 gBlockRecvBuffer _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 @ =gUnknown_03004854 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 @ =gUnknown_082162EC 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 @ =gUnknown_03004854 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 gUnknown_03004854 _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 @ =gUnknown_082162F8 ldr r1, _0804EEF8 @ =gUnknown_08216300 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 @ =0xffffa800 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 @ =gUnknown_03004854 ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] b _0804EFBC .align 2, 0 _0804EF30: .4byte gUnknown_03004854 _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 @ =gUnknown_082162F8 ldr r1, _0804EFCC @ =gUnknown_08216300 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 @ =REG_BG2CNT ldr r4, _0804EFD4 @ =0x00004882 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 REG_BG2CNT _0804EFD4: .4byte 0x00004882 _0804EFD8: bl sub_8051B8C lsls r0, 24 cmp r0, 0 beq _0804EFF6 ldr r0, _0804F008 @ =gUnknown_03004854 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 @ =gUnknown_03004854 ldr r0, [r0] movs r4, 0xB4 lsls r4, 1 adds r0, r4 bl sub_8051414 b _0804F0CE .align 2, 0 _0804F008: .4byte gUnknown_03004854 _0804F00C: ldr r0, _0804F01C @ =gSpriteTemplate_8216548 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 @ =sub_80501FC bl SetMainCallback2 bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 ldr r4, _0804F080 @ =0x00000193 cmp r0, r4 beq _0804F074 bl GetCurrentMapMusic mov r3, r8 ldr r1, [r3] movs r2, 0xBC lsls r2, 1 adds r1, r2 strh r0, [r1] _0804F074: adds r0, r4, 0 bl PlayBGM 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 MenuDrawTextWindow ldr r0, _0804F09C @ =gOtherText_LinkNotFound movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage b _0804F0AA .align 2, 0 _0804F09C: .4byte gOtherText_LinkNotFound _0804F0A0: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _0804F0CE _0804F0AA: ldr r0, _0804F0B8 @ =gUnknown_03004854 _0804F0AC: ldr r1, [r0] _0804F0AE: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804F0CE .align 2, 0 _0804F0B8: .4byte gUnknown_03004854 _0804F0BC: ldr r0, _0804F0EC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804F0CE ldr r0, _0804F0F0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music 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 gPaletteFade _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 @ =sub_804E2BC bl SetVBlankCallback ldr r4, _0804F15C @ =gWindowConfig_81E6F68 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow ldr r1, _0804F160 @ =gLinkType ldr r2, _0804F164 @ =0x00004422 adds r0, r2, 0 strh r0, [r1] ldr r0, _0804F168 @ =gUnknown_03004854 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 gLinkType _0804F164: .4byte 0x00004422 _0804F168: .4byte gUnknown_03004854 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 @ =gUnknown_03004854 ldr r0, [r0] lsrs r1, 23 adds r0, 0xA2 adds r0, r1 ldrb r0, [r0] ldr r1, _0804F1AC @ =gUnknown_08216303 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 gUnknown_03004854 _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 @ =gUnknown_082165BC 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 @ =gUnknown_03004854 movs r6, 0xFF ldr r5, _0804F2A4 @ =gUnknown_082162EC _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 @ =gUnknown_03004854 _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 gUnknown_03004854 _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 @ =gUnknown_03004854 ldr r0, _0804F364 @ =gUnknown_082162D4 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 @ =gStringVar1 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 @ =gSprites 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 @ =gUnknown_082162C4 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 @ =gLinkPlayers + 0x8 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 @ =gStringVar1 movs r3, 0x1 bl MenuPrint_PixelCoords _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 gUnknown_03004854 _0804F364: .4byte gUnknown_082162D4 _0804F368: .4byte gStringVar1 _0804F36C: .4byte gSprites _0804F370: .4byte gUnknown_082162C4 _0804F374: .4byte gLinkPlayers + 0x8 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 @ =gUnknown_03004854 ldr r0, [r1] ldrb r0, [r0] mov r8, r1 cmp r0, 0x15 bls _0804F38E b _0804F7E6 _0804F38E: lsls r0, 2 ldr r1, _0804F39C @ =_0804F3A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804F398: .4byte gUnknown_03004854 _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 @ =word_203855E ldrh r1, [r4] movs r0, 0 bl sub_80516C4 ldr r5, _0804F470 @ =gUnknown_03004854 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 word_203855E _0804F470: .4byte gUnknown_03004854 _0804F474: bl sub_804E2EC lsls r0, 24 cmp r0, 0 bne _0804F480 b _0804F7E6 _0804F480: ldr r0, _0804F490 @ =gUnknown_03004854 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8051474 b _0804F7E6 .align 2, 0 _0804F490: .4byte gUnknown_03004854 _0804F494: movs r4, 0 ldr r5, _0804F4DC @ =gUnknown_082162E4 ldr r6, _0804F4E0 @ =gUnknown_03004854 _0804F49A: ldrb r1, [r5] ldrb r2, [r5, 0x1] ldr r0, _0804F4E4 @ =gSpriteTemplate_82163F4 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 @ =gSprites 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 @ =gUnknown_03004854 ldr r1, [r0] b _0804F74C .align 2, 0 _0804F4DC: .4byte gUnknown_082162E4 _0804F4E0: .4byte gUnknown_03004854 _0804F4E4: .4byte gSpriteTemplate_82163F4 _0804F4E8: .4byte gSprites _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 @ =gUnknown_03004854 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 gUnknown_03004854 _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 @ =gPaletteFade 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 gPaletteFade _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 @ =gUnknown_082162EC ldr r0, _0804F5C4 @ =gUnknown_03004854 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 @ =gUnknown_03004854 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 gUnknown_03004854 _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 @ =gUnknown_082162F8 ldr r1, _0804F618 @ =gUnknown_08216300 ldrb r0, [r4] subs r0, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r0, r2 ldr r2, _0804F61C @ =0xffffa800 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 PlaySE 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 @ =gUnknown_082162F8 ldr r1, _0804F6EC @ =gUnknown_08216300 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 @ =REG_BG2CNT ldr r5, _0804F6F4 @ =0x00004882 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 PlaySE 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 REG_BG2CNT _0804F6F4: .4byte 0x00004882 _0804F6F8: bl sub_8051B8C lsls r0, 24 cmp r0, 0 beq _0804F70C ldr r0, _0804F71C @ =gUnknown_03004854 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0804F70C: ldr r0, _0804F71C @ =gUnknown_03004854 ldr r0, [r0] _0804F710: movs r3, 0xB4 lsls r3, 1 adds r0, r3 bl sub_8051414 b _0804F7E6 .align 2, 0 _0804F71C: .4byte gUnknown_03004854 _0804F720: ldr r0, _0804F734 @ =gSpriteTemplate_8216548 movs r2, 0x10 negs r2, r2 movs r1, 0x78 movs r3, 0x3 bl CreateSprite ldr r0, _0804F738 @ =gUnknown_03004854 ldr r1, [r0] b _0804F74C .align 2, 0 _0804F734: .4byte gSpriteTemplate_8216548 _0804F738: .4byte gUnknown_03004854 _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 @ =gUnknown_03004854 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 @ =0x0000014b adds r0, r4, r1 strb r2, [r0] ldr r0, [r3] adds r0, 0x7E strb r2, [r0] ldr r0, _0804F80C @ =sub_80501FC bl SetMainCallback2 movs r4, 0 ldr r0, _0804F810 @ =gUnknown_0202E8CC ldrh r0, [r0] cmp r4, r0 bge _0804F7B8 movs r5, 0xA0 lsls r5, 20 ldr r6, _0804F814 @ =gUnknown_08216308 _0804F792: ldm r6!, {r0} lsrs r1, r5, 24 bl CreateTask ldr r1, _0804F804 @ =gUnknown_03004854 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 @ =gUnknown_0202E8CC ldrh r0, [r0] cmp r4, r0 blt _0804F792 _0804F7B8: bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 ldr r4, _0804F818 @ =0x00000193 cmp r0, r4 beq _0804F7D6 bl GetCurrentMapMusic ldr r1, _0804F804 @ =gUnknown_03004854 ldr r1, [r1] movs r5, 0xBC lsls r5, 1 adds r1, r5 strh r0, [r1] _0804F7D6: adds r0, r4, 0 bl PlayBGM movs r0, 0x35 bl PlaySE 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 gUnknown_03004854 _0804F808: .4byte 0x0000014b _0804F80C: .4byte sub_80501FC _0804F810: .4byte gUnknown_0202E8CC _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 @ =gSendCmd movs r0, 0 ldr r1, _0804F840 @ =gRecvCmds 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 gSendCmd _0804F840: .4byte gRecvCmds 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 @ =gTasks 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 @ =gRecvCmds movs r4, 0xC ldrsh r1, [r2, r4] lsls r1, 1 adds r0, 0x10 adds r1, r0 ldr r0, _0804F88C @ =0x00002345 strh r0, [r1] adds r0, r3, 0 bl DestroyTask _0804F87C: pop {r4} pop {r0} bx r0 .align 2, 0 _0804F884: .4byte gTasks _0804F888: .4byte gRecvCmds _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 @ =sub_804F844 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0804F8C4 @ =gTasks 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 gTasks 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 @ =gUnknown_03004854 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 @ =gTasks 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 @ =0x0000014b adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0804F9BE bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _0804F940 @ =0x0000028f 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 @ =0x000001f3 cmp r2, r0 bgt _0804F964 cmp r1, 0x4B bls _0804F950 ldr r1, _0804F948 @ =gRecvCmds ldr r0, _0804F94C @ =0x00004523 b _0804F954 .align 2, 0 _0804F934: .4byte gUnknown_03004854 _0804F938: .4byte gTasks _0804F93C: .4byte 0x0000014b _0804F940: .4byte 0x0000028f _0804F944: .4byte 0x000001f3 _0804F948: .4byte gRecvCmds _0804F94C: .4byte 0x00004523 _0804F950: ldr r1, _0804F95C @ =gRecvCmds ldr r0, _0804F960 @ =0x00005432 _0804F954: strh r0, [r1, 0x12] ldr r0, _0804F960 @ =0x00005432 b _0804F9C2 .align 2, 0 _0804F95C: .4byte gRecvCmds _0804F960: .4byte 0x00005432 _0804F964: ldr r0, _0804F980 @ =0x000005db 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 @ =gRecvCmds ldr r0, _0804F988 @ =0x00005432 b _0804F9C2 .align 2, 0 _0804F980: .4byte 0x000005db _0804F984: .4byte gRecvCmds _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 @ =gRecvCmds ldr r0, _0804F9AC @ =0x00005432 b _0804F9C2 .align 2, 0 _0804F9A8: .4byte gRecvCmds _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 @ =gRecvCmds ldr r0, _0804F9D4 @ =0x00004523 _0804F9C2: strh r0, [r1, 0x12] _0804F9C4: ldr r0, _0804F9D8 @ =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _0804F9E8 .align 2, 0 _0804F9D0: .4byte gRecvCmds _0804F9D4: .4byte 0x00004523 _0804F9D8: .4byte gTasks _0804F9DC: ldr r0, _0804F9F0 @ =gTasks 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 gTasks 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 @ =gUnknown_03004854 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 @ =0x0000ffff ands r0, r1 adds r1, r3, 0 adds r1, 0xA6 ldrb r1, [r1] lsrs r2, r0, 8 ldr r0, _0804FA80 @ =gUnknown_08216303 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 @ =gTasks 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 @ =0x0000014b adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0804FAF0 bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _0804FA8C @ =0x0000028f 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 @ =0x000001f3 cmp r1, r0 bgt _0804FAAC cmp r2, 0x42 bls _0804FA9C ldr r1, _0804FA94 @ =gRecvCmds ldr r0, _0804FA98 @ =0x00004523 strh r0, [r1, 0x14] b _0804FAD4 .align 2, 0 _0804FA78: .4byte gUnknown_03004854 _0804FA7C: .4byte 0x0000ffff _0804FA80: .4byte gUnknown_08216303 _0804FA84: .4byte gTasks _0804FA88: .4byte 0x0000014b _0804FA8C: .4byte 0x0000028f _0804FA90: .4byte 0x000001f3 _0804FA94: .4byte gRecvCmds _0804FA98: .4byte 0x00004523 _0804FA9C: ldr r1, _0804FAA4 @ =gRecvCmds ldr r0, _0804FAA8 @ =0x00005432 strh r0, [r1, 0x14] b _0804FAD4 .align 2, 0 _0804FAA4: .4byte gRecvCmds _0804FAA8: .4byte 0x00005432 _0804FAAC: cmp r2, 0x41 bls _0804FAB6 ldr r1, _0804FAE0 @ =gRecvCmds ldr r0, _0804FAE4 @ =0x00004523 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 @ =gRecvCmds ldr r0, _0804FAE8 @ =0x00005432 strh r0, [r1, 0x14] _0804FAC8: cmp r3, 0x9 bhi _0804FAD4 movs r0, 0x2 movs r1, 0x5 bl sub_804F890 _0804FAD4: ldr r0, _0804FAEC @ =gTasks adds r1, r5, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _0804FB10 .align 2, 0 _0804FAE0: .4byte gRecvCmds _0804FAE4: .4byte 0x00004523 _0804FAE8: .4byte 0x00005432 _0804FAEC: .4byte gTasks _0804FAF0: ldr r0, _0804FAFC @ =gRecvCmds ldr r1, _0804FB00 @ =0x00004523 strh r1, [r0, 0x14] movs r0, 0x1 strh r0, [r2, 0x8] b _0804FB12 .align 2, 0 _0804FAFC: .4byte gRecvCmds _0804FB00: .4byte 0x00004523 _0804FB04: ldr r0, _0804FB18 @ =gTasks 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 gTasks 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 @ =gUnknown_03004854 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 @ =0x0000ffff ands r0, r1 adds r1, r3, 0 adds r1, 0xA8 ldrb r1, [r1] lsrs r2, r0, 8 ldr r0, _0804FBA4 @ =gUnknown_08216303 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 @ =gTasks 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 @ =0x0000014b adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0804FC1C bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _0804FBB0 @ =0x0000028f 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 @ =0x000001f3 cmp r1, r0 bgt _0804FBD0 cmp r2, 0x58 bls _0804FBC0 ldr r1, _0804FBB8 @ =gRecvCmds ldr r0, _0804FBBC @ =0x00004523 strh r0, [r1, 0x16] b _0804FC02 .align 2, 0 _0804FB9C: .4byte gUnknown_03004854 _0804FBA0: .4byte 0x0000ffff _0804FBA4: .4byte gUnknown_08216303 _0804FBA8: .4byte gTasks _0804FBAC: .4byte 0x0000014b _0804FBB0: .4byte 0x0000028f _0804FBB4: .4byte 0x000001f3 _0804FBB8: .4byte gRecvCmds _0804FBBC: .4byte 0x00004523 _0804FBC0: ldr r1, _0804FBC8 @ =gRecvCmds ldr r0, _0804FBCC @ =0x00005432 strh r0, [r1, 0x16] b _0804FC02 .align 2, 0 _0804FBC8: .4byte gRecvCmds _0804FBCC: .4byte 0x00005432 _0804FBD0: cmp r2, 0x3C bls _0804FBE4 ldr r1, _0804FBDC @ =gRecvCmds ldr r0, _0804FBE0 @ =0x00004523 b _0804FBF4 .align 2, 0 _0804FBDC: .4byte gRecvCmds _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 @ =gRecvCmds ldr r0, _0804FC14 @ =0x00005432 _0804FBF4: strh r0, [r1, 0x16] _0804FBF6: cmp r2, 0x4 bhi _0804FC02 movs r0, 0x3 movs r1, 0x5 bl sub_804F890 _0804FC02: ldr r0, _0804FC18 @ =gTasks adds r1, r6, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _0804FC3C .align 2, 0 _0804FC10: .4byte gRecvCmds _0804FC14: .4byte 0x00005432 _0804FC18: .4byte gTasks _0804FC1C: ldr r0, _0804FC28 @ =gRecvCmds ldr r1, _0804FC2C @ =0x00004523 strh r1, [r0, 0x16] movs r0, 0x1 strh r0, [r2, 0x8] b _0804FC3E .align 2, 0 _0804FC28: .4byte gRecvCmds _0804FC2C: .4byte 0x00004523 _0804FC30: ldr r0, _0804FC44 @ =gTasks 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 gTasks 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 @ =gSpriteTemplate_821645C ldr r4, _0804FCC0 @ =gUnknown_082162E4 lsrs r1, 23 adds r2, r1, r4 ldrb r6, [r2] ldr r5, _0804FCC4 @ =gUnknown_082162CC 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 @ =0x00004523 cmp r7, r0 bne _0804FCD4 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r5, _0804FCCC @ =gSprites adds r0, r4, r5 movs r1, 0x2 bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _0804FCD0 @ =sub_8051684 str r0, [r4] movs r0, 0x28 bl PlaySE b _0804FD18 .align 2, 0 _0804FCBC: .4byte gSpriteTemplate_821645C _0804FCC0: .4byte gUnknown_082162E4 _0804FCC4: .4byte gUnknown_082162CC _0804FCC8: .4byte 0x00004523 _0804FCCC: .4byte gSprites _0804FCD0: .4byte sub_8051684 _0804FCD4: ldr r0, _0804FCF4 @ =0x00005432 cmp r7, r0 bne _0804FCFC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0804FCF8 @ =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAnim movs r0, 0x1F bl PlaySE b _0804FD18 .align 2, 0 _0804FCF4: .4byte 0x00005432 _0804FCF8: .4byte gSprites _0804FCFC: ldr r0, _0804FD28 @ =0x00002345 cmp r8, r0 bne _0804FD18 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r1, _0804FD2C @ =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim movs r0, 0x20 bl PlaySE _0804FD18: bl sub_805156C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FD28: .4byte 0x00002345 _0804FD2C: .4byte gSprites 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 @ =0x00004523 cmp r4, r0 beq _0804FD64 cmp r4, r0 bgt _0804FD58 ldr r0, _0804FD54 @ =0x00002345 cmp r4, r0 beq _0804FE34 b _0804FE60 .align 2, 0 _0804FD50: .4byte 0x00004523 _0804FD54: .4byte 0x00002345 _0804FD58: ldr r0, _0804FD60 @ =0x00005432 cmp r5, r0 beq _0804FDFC b _0804FE60 .align 2, 0 _0804FD60: .4byte 0x00005432 _0804FD64: ldr r7, _0804FD94 @ =gUnknown_03004854 ldr r4, [r7] adds r5, r4, 0 adds r5, 0x56 ldrh r6, [r5] movs r0, 0 ldrsh r1, [r5, r0] ldr r0, _0804FD98 @ =0x000005db cmp r1, r0 bgt _0804FDA0 ldr r1, _0804FD9C @ =gUnknown_082165DA 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 gUnknown_03004854 _0804FD98: .4byte 0x000005db _0804FD9C: .4byte gUnknown_082165DA _0804FDA0: ldr r1, _0804FDF8 @ =gUnknown_082165DA 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 @ =gUnknown_03004854 ldr r2, [r0] adds r4, r2, 0 adds r4, 0x56 ldrh r5, [r4] movs r0, 0 ldrsh r1, [r4, r0] ldr r0, _0804FE2C @ =0x000005db cmp r1, r0 bgt _0804FE60 ldr r1, _0804FE30 @ =gUnknown_082165DA 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 gUnknown_03004854 _0804FE2C: .4byte 0x000005db _0804FE30: .4byte gUnknown_082165DA _0804FE34: ldr r0, _0804FE68 @ =gUnknown_03004854 ldr r0, [r0] adds r4, r0, 0 adds r4, 0x56 ldr r1, _0804FE6C @ =gUnknown_082165DA 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 gUnknown_03004854 _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 @ =gUnknown_0202E8CC ldrh r0, [r0] cmp r0, 0 beq _0804FEB6 ldr r3, _0804FF44 @ =gSendCmd ldrh r0, [r3, 0x4] ldr r2, _0804FF48 @ =gRecvCmds cmp r0, 0 beq _0804FE98 movs r1, 0 strh r0, [r2, 0x10] ldr r0, _0804FF4C @ =0x00004444 strh r0, [r2] strh r1, [r3, 0x4] _0804FE98: ldr r0, _0804FF48 @ =gRecvCmds ldr r3, _0804FF4C @ =0x00004444 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 @ =gUnknown_03004854 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 @ =gRecvCmds adds r0, 0x10 mov r8, r0 ldr r1, _0804FF54 @ =0x00005432 mov r10, r1 _0804FED8: ldr r2, [sp] ldr r1, _0804FF48 @ =gRecvCmds adds r0, r2, r1 ldrh r1, [r0] ldr r0, _0804FF4C @ =0x00004444 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 @ =0x00004523 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 @ =0x03e70000 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 @ =0x00004523 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 gUnknown_0202E8CC _0804FF44: .4byte gSendCmd _0804FF48: .4byte gRecvCmds _0804FF4C: .4byte 0x00004444 _0804FF50: .4byte gUnknown_03004854 _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 @ =0x00002345 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 @ =0x000003e6 cmp r2, r0 bhi _0804FFCC adds r0, r2, 0x1 _0804FFCA: strh r0, [r1] _0804FFCC: mov r0, r8 ldrh r1, [r0] ldr r0, _08050018 @ =0x00002345 cmp r1, r0 beq _0804FFE4 _0804FFD6: mov r1, r8 ldrh r0, [r1] ldr r2, _08050020 @ =0x00004523 cmp r0, r2 beq _0804FFE4 cmp r0, r10 bne _0805003E _0804FFE4: ldr r0, _08050024 @ =gUnknown_03004854 ldr r0, [r0] adds r2, r0, 0 adds r2, 0x56 movs r0, 0 ldrsh r1, [r2, r0] ldr r0, _08050028 @ =0x000005dc cmp r1, r0 ble _08050034 adds r0, r1, 0 ldr r2, _0805002C @ =0xfffffd12 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 @ =gMPlay_BGM bl m4aMPlayTempoControl b _0805003E .align 2, 0 _08050018: .4byte 0x00002345 _0805001C: .4byte 0x000003e6 _08050020: .4byte 0x00004523 _08050024: .4byte gUnknown_03004854 _08050028: .4byte 0x000005dc _0805002C: .4byte 0xfffffd12 _08050030: .4byte gMPlay_BGM _08050034: ldr r0, _08050098 @ =gMPlay_BGM 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 @ =gUnknown_03004854 ldr r0, [r7] adds r0, 0x88 ldrb r0, [r0] cmp r6, r0 bge _0805005C b _0804FED8 _0805005C: ldr r0, _080500A0 @ =gUnknown_0202E8CC ldrh r0, [r0] cmp r0, 0 beq _08050088 movs r6, 0 ldr r3, _0805009C @ =gUnknown_03004854 ldr r0, [r3] adds r0, 0x88 ldrb r0, [r0] cmp r6, r0 bge _08050088 movs r2, 0 ldr r1, _080500A4 @ =gRecvCmds _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 gMPlay_BGM _0805009C: .4byte gUnknown_03004854 _080500A0: .4byte gUnknown_0202E8CC _080500A4: .4byte gRecvCmds thumb_func_end sub_804FE70 thumb_func_start sub_80500A8 sub_80500A8: @ 80500A8 push {r4-r6,lr} movs r6, 0 ldr r5, _080500EC @ =gUnknown_03004854 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 @ =gSaveBlock2 ldrb r0, [r0, 0x13] cmp r0, 0x2 bne _080500FC ldr r2, _080500F4 @ =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805010A ldrh r0, [r2, 0x28] ldr r1, _080500F8 @ =0x00000201 bics r1, r0 negs r0, r1 orrs r0, r1 lsrs r6, r0, 31 b _0805010A .align 2, 0 _080500EC: .4byte gUnknown_03004854 _080500F0: .4byte gSaveBlock2 _080500F4: .4byte gMain _080500F8: .4byte 0x00000201 _080500FC: ldr r0, _0805015C @ =gMain 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 @ =gUnknown_03004854 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 @ =gSprites 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 @ =gSendCmd ldr r0, _0805016C @ =0x00004523 b _08050188 .align 2, 0 _0805015C: .4byte gMain _08050160: .4byte gUnknown_03004854 _08050164: .4byte gSprites _08050168: .4byte gSendCmd _0805016C: .4byte 0x00004523 _08050170: cmp r0, 0x1 bne _08050184 ldr r1, _0805017C @ =gSendCmd ldr r0, _08050180 @ =0x00005432 b _08050188 .align 2, 0 _0805017C: .4byte gSendCmd _08050180: .4byte 0x00005432 _08050184: ldr r1, _080501E4 @ =gSendCmd ldr r0, _080501E8 @ =0x00002345 _08050188: strh r0, [r1, 0x4] _0805018A: ldr r2, _080501EC @ =gUnknown_03004854 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 @ =gUnknown_020297ED ldrb r0, [r0] cmp r0, 0 beq _080501DE ldr r0, _080501F4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080501DE ldr r0, [r2] ldr r1, _080501F8 @ =0x0000014b 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 gSendCmd _080501E8: .4byte 0x00002345 _080501EC: .4byte gUnknown_03004854 _080501F0: .4byte gUnknown_020297ED _080501F4: .4byte gMain _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 @ =gUnknown_03004854 ldr r0, [r4] movs r1, 0x96 lsls r1, 1 adds r2, r0, r1 ldr r1, [r2] ldr r0, _08050298 @ =0x00057e03 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 @ =0x000003e7 cmp r1, r0 bls _0805027E adds r0, r2, r5 strh r6, [r0] movs r0, 0x1 strb r0, [r3] ldr r0, _080502A0 @ =sub_8050954 bl SetMainCallback2 _0805027E: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08050294: .4byte gUnknown_03004854 _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 @ =0xffffff00 ands r0, r2 ldr r1, [r5, 0x8] ands r1, r2 cmp r0, r1 bne _080502F0 ldr r0, [r4, 0xC] ldr r2, _080502EC @ =0x00ffffff 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 @ =gUnknown_03000520 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 gUnknown_03000520 _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 @ =gUnknown_0300052C strh r0, [r1] bx lr .align 2, 0 _080504F8: .4byte gUnknown_0300052C thumb_func_end sub_80504F0 thumb_func_start unref_sub_80504FC unref_sub_80504FC: @ 80504FC ldr r0, _08050504 @ =gUnknown_0300052C movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08050504: .4byte gUnknown_0300052C thumb_func_end unref_sub_80504FC thumb_func_start sub_8050508 sub_8050508: @ 8050508 ldr r1, _08050510 @ =gUnknown_0300052E strh r0, [r1] bx lr .align 2, 0 _08050510: .4byte gUnknown_0300052E thumb_func_end sub_8050508 thumb_func_start unref_sub_8050514 unref_sub_8050514: @ 8050514 ldr r0, _0805051C @ =gUnknown_0300052E movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0805051C: .4byte gUnknown_0300052E 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 @ =gUnknown_03000510 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 @ =gUnknown_03000510 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 @ =gUnknown_03000510 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 gUnknown_03000510 _080505E0: subs r0, r2, r3 strh r0, [r1] _080505E4: adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _080505CA ldr r1, _080506C4 @ =gUnknown_03000510 ldr r2, _080506C8 @ =gUnknown_03000530 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 @ =0x0000014d ldr r0, [sp, 0x8] bl __udivsi3 lsls r0, 16 lsrs r0, 16 adds r3, r0, 0 adds r3, 0x64 ldr r4, _080506D0 @ =gUnknown_0300055C 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 @ =gUnknown_03000510 ldr r2, _080506D4 @ =gUnknown_03000548 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 @ =gUnknown_03000510 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 @ =gUnknown_082165DF 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 gUnknown_03000510 _080506C8: .4byte gUnknown_03000530 _080506CC: .4byte 0x0000014d _080506D0: .4byte gUnknown_0300055C _080506D4: .4byte gUnknown_03000548 _080506D8: .4byte gUnknown_082165DF _080506DC: strh r2, [r1] _080506DE: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x4 ble _080506B4 _080506E6: ldr r7, _08050740 @ =gUnknown_03000510 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 gUnknown_03000510 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 @ =gUnknown_03004854 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 @ =0x00000383 cmp r1, r5 bhi _08050788 movs r2, 0x5 b _080507DA .align 2, 0 _08050780: .4byte gUnknown_03004854 _08050784: .4byte 0x00000383 _08050788: ldr r3, _0805079C @ =0xfffffc7c adds r0, r1, r3 lsls r0, 16 lsrs r0, 16 ldr r3, _080507A0 @ =0x00000257 cmp r0, r3 bhi _080507A4 movs r2, 0x4 b _080507DA .align 2, 0 _0805079C: .4byte 0xfffffc7c _080507A0: .4byte 0x00000257 _080507A4: ldr r6, _080507B4 @ =0xfffffa24 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 @ =0xfffff7cc 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 @ =0xfffff31c adds r0, r1, r6 lsls r0, 16 ldr r1, _080507FC @ =0x012b0000 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 @ =0x0000ffff 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 @ =0x0000fffe 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 @ =0x0000fffd 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 @ =0x0000fffc 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 @ =0x0000fffb b _080508BC .align 2, 0 _08050850: .4byte 0x0000fffb _08050854: ldr r1, _08050864 @ =0xfffffea2 adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _0805086C ldr r2, _08050868 @ =0x0000fffa b _080508BC .align 2, 0 _08050864: .4byte 0xfffffea2 _08050868: .4byte 0x0000fffa _0805086C: ldr r3, _0805087C @ =0xfffffe70 adds r0, r4, r3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08050884 ldr r2, _08050880 @ =0x0000fff9 b _080508BC .align 2, 0 _0805087C: .4byte 0xfffffe70 _08050880: .4byte 0x0000fff9 _08050884: ldr r6, _08050894 @ =0xfffffe0c adds r0, r4, r6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _0805089C ldr r2, _08050898 @ =0x0000fff8 b _080508BC .align 2, 0 _08050894: .4byte 0xfffffe0c _08050898: .4byte 0x0000fff8 _0805089C: ldr r1, _080508AC @ =0xfffffdda adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _080508B4 ldr r2, _080508B0 @ =0x0000fff7 b _080508BC .align 2, 0 _080508AC: .4byte 0xfffffdda _080508B0: .4byte 0x0000fff7 _080508B4: ldr r0, _080508CC @ =0x00000257 cmp r4, r0 bls _080508BC ldr r2, _080508D0 @ =0x0000fff6 _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 @ =gUnknown_03004854 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 gUnknown_03004854 thumb_func_end sub_80508D4 thumb_func_start sub_80508FC sub_80508FC: @ 80508FC push {r4,lr} sub sp, 0x4 ldr r4, _08050944 @ =gUnknown_03004854 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 MenuDrawTextWindow ldr r1, _08050948 @ =0x0000ffff ldr r3, _0805094C @ =0x00002d9f movs r0, 0x20 str r0, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 ldr r0, _08050950 @ =gOtherText_YesNoTerminating movs r1, 0x18 movs r2, 0x9 bl MenuPrint 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 gUnknown_03004854 _08050948: .4byte 0x0000ffff _0805094C: .4byte 0x00002d9f _08050950: .4byte gOtherText_YesNoTerminating 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 @ =gUnknown_03004854 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 @ =_08050980 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08050978: .4byte gUnknown_03004854 _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 @ =gMPlay_BGM movs r1, 0x80 lsls r1, 1 bl m4aMPlayTempoControl movs r4, 0 b _080509E4 .align 2, 0 _080509C8: .4byte gMPlay_BGM _080509CC: ldr r0, _080509F0 @ =gUnknown_03004854 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 @ =gUnknown_0202E8CC ldrh r0, [r0] cmp r4, r0 bcc _080509CC b _08050C82 .align 2, 0 _080509F0: .4byte gUnknown_03004854 _080509F4: .4byte gUnknown_0202E8CC _080509F8: ldr r1, _08050A24 @ =gUnknown_03004854 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 @ =gReceivedRemoteLinkPlayers 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 gUnknown_03004854 _08050A28: .4byte gReceivedRemoteLinkPlayers _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 @ =gMPlay_SE2 bl m4aMPlayStop _08050A40: bl sub_804E290 b _08050CB6 .align 2, 0 _08050A48: .4byte gMPlay_SE2 _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 @ =gUnknown_03004854 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 gUnknown_03004854 _08050A94: bl GetBlockRecievedStatus lsls r0, 24 cmp r0, 0 bne _08050AA0 b _08050CB6 _08050AA0: ldr r2, _08050AC8 @ =gBlockRecvBuffer ldr r0, _08050ACC @ =gUnknown_03004854 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 gBlockRecvBuffer _08050ACC: .4byte gUnknown_03004854 _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 @ =gUnknown_03004834 ldrb r0, [r0] cmp r0, 0 bne _08050B00 movs r0, 0x22 bl sav12_xor_increment b _08050C82 .align 2, 0 _08050AFC: .4byte gUnknown_03004834 _08050B00: movs r0, 0x21 bl sav12_xor_increment b _08050C82 _08050B08: ldr r0, _08050B2C @ =gUnknown_03004854 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 MenuDrawTextWindow ldr r0, _08050B30 @ =gOtherText_BlendAnotherBerryPrompt movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage b _08050CB6 .align 2, 0 _08050B2C: .4byte gUnknown_03004854 _08050B30: .4byte gOtherText_BlendAnotherBerryPrompt _08050B34: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08050B40 b _08050CB6 _08050B40: b _08050C82 _08050B42: ldr r4, _08050B54 @ =gUnknown_03004854 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 gUnknown_03004854 _08050B58: ldr r0, _08050B80 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08050B88 ldr r0, _08050B84 @ =gUnknown_03004854 ldr r0, [r0] adds r0, 0xAA ldrb r0, [r0] cmp r0, 0 beq _08050B76 movs r0, 0x5 bl PlaySE _08050B76: movs r0, 0 bl sub_80508D4 b _08050CB6 .align 2, 0 _08050B80: .4byte gMain _08050B84: .4byte gUnknown_03004854 _08050B88: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08050BA8 ldr r0, _08050BA4 @ =gUnknown_03004854 ldr r0, [r0] adds r0, 0xAA ldrb r0, [r0] cmp r0, 0x1 beq _08050BD4 movs r0, 0x5 bl PlaySE b _08050BD4 .align 2, 0 _08050BA4: .4byte gUnknown_03004854 _08050BA8: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08050BB8 movs r0, 0x5 bl PlaySE b _08050C82 _08050BB8: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08050BC2 b _08050CB6 _08050BC2: movs r0, 0x5 bl PlaySE ldr r0, _08050BDC @ =gUnknown_03004854 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 gUnknown_03004854 _08050BE0: ldr r6, _08050C10 @ =gSendCmd movs r7, 0 ldr r0, _08050C14 @ =0x00002fff strh r0, [r6] ldr r4, _08050C18 @ =gUnknown_03004854 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 @ =0x00009999 b _08050C48 .align 2, 0 _08050C10: .4byte gSendCmd _08050C14: .4byte 0x00002fff _08050C18: .4byte gUnknown_03004854 _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 @ =0x0000aaaa b _08050C48 .align 2, 0 _08050C3C: .4byte 0x0000aaaa _08050C40: ldr r0, [r4] adds r0, 0x7C strh r5, [r0] ldr r0, _08050C4C @ =0x00007779 _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 @ =0x00008888 strh r0, [r6, 0x2] subs r1, 0xD b _08050C88 .align 2, 0 _08050C60: .4byte 0x00008888 _08050C64: ldr r0, _08050C70 @ =gUnknown_03004834 ldrb r0, [r0] cmp r0, 0 beq _08050C78 ldr r0, _08050C74 @ =sub_80510E8 b _08050CA4 .align 2, 0 _08050C70: .4byte gUnknown_03004834 _08050C74: .4byte sub_80510E8 _08050C78: ldr r0, _08050C90 @ =gOtherText_LinkStandby3 movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage _08050C82: ldr r0, _08050C94 @ =gUnknown_03004854 ldr r1, [r0] _08050C86: adds r1, 0x6F _08050C88: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08050CB6 .align 2, 0 _08050C90: .4byte gOtherText_LinkStandby3 _08050C94: .4byte gUnknown_03004854 _08050C98: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _08050CB6 ldr r0, _08050CE0 @ =sub_8050E30 _08050CA4: bl SetMainCallback2 ldr r2, _08050CE4 @ =gUnknown_03004854 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 @ =gUnknown_03004854 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 gUnknown_03004854 thumb_func_end sub_8050954 thumb_func_start sub_8050CE8 sub_8050CE8: @ 8050CE8 push {r4,lr} ldr r1, _08050D08 @ =gUnknown_03004854 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 @ =_08050D10 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08050D08: .4byte gUnknown_03004854 _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 @ =gUnknown_03004854 ldr r2, [r0] movs r3, 0xE2 lsls r3, 1 adds r1, r2, r3 movs r0, 0x1 b _08050DF8 .align 2, 0 _08050D40: .4byte gUnknown_03004854 _08050D44: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _08050E28 ldr r0, _08050D68 @ =gUnknown_03004854 ldr r1, [r0] movs r2, 0xE2 lsls r2, 1 adds r1, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r1, _08050D6C @ =gUnknown_3001BB4 movs r0, 0x1 strb r0, [r1] b _08050E28 .align 2, 0 _08050D68: .4byte gUnknown_03004854 _08050D6C: .4byte gUnknown_3001BB4 _08050D70: bl sub_8125E2C ldr r0, _08050D7C @ =gUnknown_03004854 ldr r2, [r0] b _08050DEE .align 2, 0 _08050D7C: .4byte gUnknown_03004854 _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 @ =gUnknown_03004854 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 gUnknown_03004854 _08050DD0: ldr r0, _08050DE8 @ =gUnknown_03004854 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 gUnknown_03004854 _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 @ =gUnknown_3001BB4 movs r0, 0 strb r0, [r1] movs r0, 0x1 b _08050E2A .align 2, 0 _08050E24: .4byte gUnknown_3001BB4 _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 @ =gUnknown_03004854 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 @ =_08050E58 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08050E50: .4byte gUnknown_03004854 _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 @ =0x00002222 cmp r2, r0 bne _08050E9C b _08050FA2 _08050E9C: ldr r0, _08050EBC @ =0x00001111 cmp r2, r0 beq _08050EA4 b _080510C4 _08050EA4: adds r0, r1, 0 adds r0, 0x78 ldrh r2, [r0] ldr r0, _08050EC0 @ =0x00009999 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 @ =0x0000aaaa 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 MenuZeroFillWindowRect ldr r4, _08050F0C @ =gStringVar4 ldr r0, [r5] adds r0, 0x7A ldrh r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _08050F10 @ =gLinkPlayers + 0x8 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r1, _08050F14 @ =gOtherText_OtherCaseIsFull b _08050F4C .align 2, 0 _08050F0C: .4byte gStringVar4 _08050F10: .4byte gLinkPlayers + 0x8 _08050F14: .4byte gOtherText_OtherCaseIsFull _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 MenuZeroFillWindowRect ldr r4, _08050F60 @ =gStringVar4 ldr r0, [r5] adds r0, 0x7A ldrh r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _08050F64 @ =gLinkPlayers + 0x8 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r1, _08050F68 @ =gOtherText_NoBerriesForBlend _08050F4C: adds r0, r4, 0 bl StringAppend adds r0, r4, 0 movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage b _080510C4 .align 2, 0 _08050F60: .4byte gStringVar4 _08050F64: .4byte gLinkPlayers + 0x8 _08050F68: .4byte gOtherText_NoBerriesForBlend _08050F6C: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08050F78 b _080510C4 _08050F78: ldr r0, _08050F88 @ =gUnknown_03004854 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 gUnknown_03004854 _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 MenuDrawTextWindow ldr r0, _08050FCC @ =gMultiText_Saving movs r1, 0x2 movs r2, 0xF bl MenuPrint bl sub_80084A4 ldr r0, _08050FD0 @ =gUnknown_03004854 ldr r1, [r0] b _080510AC .align 2, 0 _08050FCC: .4byte gMultiText_Saving _08050FD0: .4byte gUnknown_03004854 _08050FD4: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080510C4 ldr r3, _08051000 @ =gUnknown_03004854 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 gUnknown_03004854 _08051004: bl sub_8050CE8 lsls r0, 24 cmp r0, 0 beq _080510C4 movs r0, 0x37 bl PlaySE ldr r0, _0805101C @ =gUnknown_03004854 ldr r1, [r0] b _080510AC .align 2, 0 _0805101C: .4byte gUnknown_03004854 _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 @ =gUnknown_03004854 ldr r1, [r0] b _080510AC .align 2, 0 _08051050: .4byte gUnknown_03004854 _08051054: ldr r0, _0805107C @ =gPaletteFade 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 @ =0x00002222 cmp r1, r0 bne _08051088 ldr r0, _08051084 @ =sub_804E538 bl SetMainCallback2 b _080510C4 .align 2, 0 _0805107C: .4byte gPaletteFade _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 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080510C4 ldr r0, _080510E4 @ =c2_exit_to_overworld_1_continue_scripts_restart_music 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 gReceivedRemoteLinkPlayers _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 @ =gUnknown_03004854 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 @ =_0805110C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08051104: .4byte gUnknown_03004854 _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 MenuZeroFillWindowRect ldr r0, _0805118C @ =gOtherText_CaseIsFull b _080511AC .align 2, 0 _0805118C: .4byte gOtherText_CaseIsFull _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 MenuZeroFillWindowRect ldr r0, _080511B8 @ =gOtherText_OutOfBerries _080511AC: movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage b _0805121E .align 2, 0 _080511B8: .4byte gOtherText_OutOfBerries _080511BC: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _0805121E ldr r0, _080511D4 @ =gUnknown_03004854 ldr r0, [r0] adds r0, 0x6F movs r1, 0x9 strb r1, [r0] b _0805121E .align 2, 0 _080511D4: .4byte gUnknown_03004854 _080511D8: movs r0, 0x3 bl BeginFastPaletteFade ldr r0, _080511EC @ =gUnknown_03004854 ldr r1, [r0] adds r1, 0x6F ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0805121E .align 2, 0 _080511EC: .4byte gUnknown_03004854 _080511F0: ldr r0, _08051210 @ =gPaletteFade 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 @ =sub_804E538 bl SetMainCallback2 b _0805121E .align 2, 0 _08051210: .4byte gPaletteFade _08051214: .4byte sub_804E538 _08051218: ldr r0, _08051238 @ =c2_exit_to_overworld_1_continue_scripts_restart_music 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 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _08051248 b _08051404 _08051248: ldr r4, _08051270 @ =gRecvCmds ldrh r1, [r4] ldr r0, _08051274 @ =0x00002fff cmp r1, r0 bne _080512C6 ldrh r1, [r4, 0x8] ldr r0, _08051278 @ =0x00001111 cmp r1, r0 bne _080512B8 ldrh r3, [r4, 0x10] ldr r0, _0805127C @ =0x00009999 cmp r3, r0 beq _08051298 cmp r3, r0 bgt _08051284 ldr r0, _08051280 @ =0x00008888 b _08051286 .align 2, 0 _0805126C: .4byte gReceivedRemoteLinkPlayers _08051270: .4byte gRecvCmds _08051274: .4byte 0x00002fff _08051278: .4byte 0x00001111 _0805127C: .4byte 0x00009999 _08051280: .4byte 0x00008888 _08051284: ldr r0, _08051290 @ =0x0000aaaa _08051286: cmp r3, r0 beq _08051298 ldr r2, _08051294 @ =gUnknown_03004854 b _080512A8 .align 2, 0 _08051290: .4byte 0x0000aaaa _08051294: .4byte gUnknown_03004854 _08051298: ldr r2, _080512B0 @ =gUnknown_03004854 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 @ =0x00001111 b _080512C4 .align 2, 0 _080512B0: .4byte gUnknown_03004854 _080512B4: .4byte 0x00001111 _080512B8: ldr r0, _080512F4 @ =0x00002222 cmp r1, r0 bne _080512C6 ldr r0, _080512F8 @ =gUnknown_03004854 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 @ =gUnknown_03004854 ldr r0, [r2] adds r0, 0x70 ldrh r1, [r0] ldr r0, _080512FC @ =0x00001111 cmp r1, r0 bne _080512E2 b _08051404 _080512E2: ldr r0, _080512F4 @ =0x00002222 cmp r1, r0 bne _080512EA b _08051404 _080512EA: movs r4, 0 ldr r6, _08051300 @ =0x00002fff adds r5, r2, 0 b _0805134E .align 2, 0 _080512F4: .4byte 0x00002222 _080512F8: .4byte gUnknown_03004854 _080512FC: .4byte 0x00001111 _08051300: .4byte 0x00002fff _08051304: ldr r1, _08051328 @ =gRecvCmds 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 @ =0x00008888 cmp r1, r0 beq _08051340 cmp r1, r0 bgt _08051334 ldr r0, _08051330 @ =0x00007779 b _0805133C .align 2, 0 _08051328: .4byte gRecvCmds _0805132C: .4byte 0x00008888 _08051330: .4byte 0x00007779 _08051334: ldr r0, _08051360 @ =0x00009999 cmp r1, r0 beq _08051340 ldr r0, _08051364 @ =0x0000aaaa _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 @ =gUnknown_03004854 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 @ =0x00007779 b _080513AA .align 2, 0 _0805139C: .4byte gUnknown_03004854 _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 @ =gUnknown_03004854 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 @ =gSendCmd movs r6, 0 ldr r0, _080513E8 @ =0x00002fff strh r0, [r5] bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _080513F0 ldr r0, _080513EC @ =0x00002222 strh r0, [r5, 0x2] b _08051404 .align 2, 0 _080513E0: .4byte gUnknown_03004854 _080513E4: .4byte gSendCmd _080513E8: .4byte 0x00002fff _080513EC: .4byte 0x00002222 _080513F0: ldr r0, _0805140C @ =0x00001111 strh r0, [r5, 0x2] ldr r0, _08051410 @ =gUnknown_03004854 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 gUnknown_03004854 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 @ =gUnknown_03004854 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 gUnknown_03004854 thumb_func_end sub_8051414 thumb_func_start sub_8051474 sub_8051474: @ 8051474 push {lr} ldr r0, _080514A0 @ =gUnknown_03004854 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 gUnknown_03004854 thumb_func_end sub_8051474 thumb_func_start sub_80514A4 sub_80514A4: @ 80514A4 ldr r1, _080514E8 @ =REG_BG2PA ldr r0, _080514EC @ =gUnknown_03004854 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 REG_BG2PA _080514EC: .4byte gUnknown_03004854 thumb_func_end sub_80514A4 thumb_func_start sub_80514F0 sub_80514F0: @ 80514F0 ldr r1, _0805151C @ =REG_BG1HOFS ldr r0, _08051520 @ =gUnknown_03004854 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 REG_BG1HOFS _08051520: .4byte gUnknown_03004854 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 @ =gSineTable mov r9, r0 ldr r2, _0805163C @ =gSprites mov r10, r2 adds r6, r1, 0x1 movs r3, 0x1F mov r8, r3 movs r7, 0x10 _08051598: bl Random ldr r1, _08051640 @ =gUnknown_03004854 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 @ =gSpriteTemplate_82164FC 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 @ =gSprites + 0x1C adds r5, r3 ldr r0, _0805164C @ =sub_8051524 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 gSineTable _0805163C: .4byte gSprites _08051640: .4byte gUnknown_03004854 _08051644: .4byte gSpriteTemplate_82164FC _08051648: .4byte gSprites + 0x1C _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 @ =0x0000fff4 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 @ =gUnknown_03004854 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 gUnknown_03004854 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 @ =gTasks adds r4, r0, r1 ldr r6, _080517BC @ =gReceivedRemoteLinkPlayers 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 @ =gUnknown_03004854 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 MenuDrawTextWindow movs r2, 0 ldr r6, _080517C4 @ =gLinkPlayers + 0x4 _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 @ =gUnknown_08216284 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 MenuPrint _08051784: movs r0, 0 movs r1, 0xD movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _080517CC @ =gOtherText_PressAToStart movs r1, 0x1 movs r2, 0xF bl MenuPrint adds r2, r4, 0 cmp r2, 0x2 ble _0805175C _080517A0: ldr r0, _080517D0 @ =gMain 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 gTasks _080517BC: .4byte gReceivedRemoteLinkPlayers _080517C0: .4byte gUnknown_03004854 _080517C4: .4byte gLinkPlayers + 0x4 _080517C8: .4byte gUnknown_08216284 _080517CC: .4byte gOtherText_PressAToStart _080517D0: .4byte gMain _080517D4: movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0xA bne _080517E6 ldr r0, _08051814 @ =gOtherText_PleaseWait movs r1, 0x3 movs r2, 0xA bl MenuPrint _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 @ =byte_3002A68 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 gOtherText_PleaseWait _08051818: .4byte byte_3002A68 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 PlaySE 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 @ =gSpriteTemplate_821657C 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 @ =0x0000fff0 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 PlaySE 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 @ =gUnknown_03004854 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 gUnknown_03004854 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 @ =gUnknown_03004854 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 gUnknown_03004854 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 @ =0x06006000 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 @ =0x000081e9 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 @ =0xffff81e1 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 @ =0x000081e1 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 @ =0x00057e40 muls r0, r1 cmp r0, 0 bge _08051A2E ldr r1, _08051A38 @ =0x0000ffff 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 @ =gUnknown_03004854 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 @ =0x06006458 mov r0, sp ldr r3, _08051AC4 @ =0x00008172 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 gUnknown_03004854 _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 @ =gUnknown_03004854 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 gUnknown_03004854 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 @ =gUnknown_03004854 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 gUnknown_03004854 _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 @ =gUnknown_03004854 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 gUnknown_03004854 thumb_func_end sub_8051C04 thumb_func_start sub_8051C24 sub_8051C24: @ 8051C24 push {lr} ldr r2, _08051C4C @ =gSaveBlock1 ldr r0, _08051C50 @ =gUnknown_03004854 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x88 ldrb r0, [r0] subs r0, 0x2 lsls r0, 1 ldr r3, _08051C54 @ =0x0000096c 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 gSaveBlock1 _08051C50: .4byte gUnknown_03004854 _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 @ =gUnknown_03004854 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bls _08051C72 b _0805200A _08051C72: lsls r0, 2 ldr r1, _08051C80 @ =_08051C84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08051C7C: .4byte gUnknown_03004854 _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 @ =gUnknown_03004854 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 @ =gSprites 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 gUnknown_03004854 _08051D1C: .4byte gSprites _08051D20: movs r0, 0x4 movs r1, 0x2 movs r2, 0x19 movs r3, 0x11 bl MenuDrawTextWindow ldr r0, _08051F14 @ =gOtherText_ResultsOfBlending movs r1, 0x5 movs r2, 0x3 movs r3, 0xA0 bl sub_8072BD8 movs r6, 0 ldr r1, _08051F18 @ =gUnknown_03004854 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 @ =gLinkPlayers 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 @ =gOtherText_Berry 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 @ =gLinkPlayers + 0x8 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 @ =gUnknown_082165E9 adds r1, 0x88 ldrb r2, [r1] adds r3, r2, r3 ldr r1, _08051F2C @ =gUnknown_082165EE 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 MenuPrint 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 @ =gUnknown_03004854 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 @ =gOtherText_MaxSpeed 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 @ =gOtherText_RPM bl StringCopy ldr r0, [r6] adds r0, 0xAB movs r1, 0x5 movs r2, 0xD bl MenuPrint 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 @ =gOtherText_RequiredTime 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 @ =gOtherText_Min 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 @ =gOtherText_Sec bl StringCopy ldr r0, [r6] adds r0, 0xAB movs r1, 0x5 movs r2, 0xF bl MenuPrint 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 gOtherText_ResultsOfBlending _08051F18: .4byte gUnknown_03004854 _08051F1C: .4byte gLinkPlayers _08051F20: .4byte gOtherText_Berry _08051F24: .4byte gLinkPlayers + 0x8 _08051F28: .4byte gUnknown_082165E9 _08051F2C: .4byte gUnknown_082165EE _08051F30: .4byte gOtherText_MaxSpeed _08051F34: .4byte gOtherText_RPM _08051F38: .4byte gOtherText_RequiredTime _08051F3C: .4byte gOtherText_Min _08051F40: .4byte gOtherText_Sec _08051F44: ldr r0, _08051F54 @ =gMain 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 gMain _08051F58: bl MenuZeroFillScreen movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow movs r6, 0 add r5, sp, 0x28 ldr r0, _08051FEC @ =gUnknown_03004854 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 @ =gUnknown_03004854 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 @ =sub_8052BD0 movs r1, 0x6 bl CreateTask ldr r0, [r4] adds r0, 0xAB movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage ldr r0, _08051FF4 @ =word_203855E 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 gUnknown_03004854 _08051FF0: .4byte sub_8052BD0 _08051FF4: .4byte word_203855E _08051FF8: bl MenuUpdateWindowText 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 @ =gUnknown_083F7EB8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl StringCopy ldr r1, _080520B4 @ =gOtherText_PokeBlockMade adds r0, r6, 0 bl StringAppend ldr r1, _080520B8 @ =gUnknown_082162C8 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 @ =gOtherText_BlockLevelIs 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 @ =gOtherText_BlockFeelIs 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 @ =gOtherText_Period adds r0, r6, 0 bl StringAppend ldr r1, _080520C8 @ =gUnknown_08216249 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 gOtherText_PokeBlockMade _080520B8: .4byte gUnknown_082162C8 _080520BC: .4byte gOtherText_BlockLevelIs _080520C0: .4byte gOtherText_BlockFeelIs _080520C4: .4byte gOtherText_Period _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 @ =gUnknown_03004854 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 gUnknown_03004854 _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 @ =gUnknown_03004854 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bls _0805223C b _080524AE _0805223C: lsls r0, 2 ldr r1, _0805224C @ =_08052250 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08052248: .4byte gUnknown_03004854 _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 MenuDrawTextWindow ldr r0, _0805236C @ =gOtherText_Ranking movs r1, 0x5 movs r2, 0x3 movs r3, 0xA0 bl sub_8072BD8 ldr r6, _08052370 @ =gSpriteTemplate_821645C adds r0, r6, 0 movs r1, 0x8C movs r2, 0x34 movs r3, 0 bl CreateSprite ldr r7, _08052374 @ =gUnknown_03004854 ldr r1, [r7] adds r1, 0x50 strb r0, [r1] ldr r1, _08052378 @ =gSprites 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 @ =SpriteCallbackDummy 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 gOtherText_Ranking _08052370: .4byte gSpriteTemplate_821645C _08052374: .4byte gUnknown_03004854 _08052378: .4byte gSprites _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 @ =gLinkPlayers + 0x8 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 @ =gUnknown_082165F3 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 MenuPrint 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 @ =gUnknown_03004854 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 gLinkPlayers + 0x8 _0805245C: .4byte gUnknown_082165F3 _08052460: .4byte gUnknown_03004854 _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 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080524AE movs r0, 0x5 bl PlaySE ldr r0, _080524A0 @ =gUnknown_03004854 ldr r1, [r0] _08052494: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080524AE .align 2, 0 _0805249C: .4byte gMain _080524A0: .4byte gUnknown_03004854 _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 @ =sub_804E2D8 bl SetVBlankCallback ldr r4, _08052520 @ =gWindowConfig_81E6CE4 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow ldr r0, _08052524 @ =gMain 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 @ =gUnknown_03000560 movs r0, 0xFA lsls r0, 5 strh r0, [r1, 0x1A] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] ldr r0, _0805252C @ =sub_8052AF8 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _0805251C: .4byte sub_804E2D8 _08052520: .4byte gWindowConfig_81E6CE4 _08052524: .4byte gMain _08052528: .4byte gUnknown_03000560 _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 @ =gOtherText_BPMAndDash mov r0, sp bl StringCopy mov r0, sp movs r1, 0x2 movs r2, 0 bl MenuPrint ldr r4, _080525CC @ =gUnknown_03000560 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 MenuPrint 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 @ =gBerries mov r9, r3 ldr r0, _080525D4 @ =gUnknown_082165F8 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 gOtherText_BPMAndDash _080525CC: .4byte gUnknown_03000560 _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 MenuPrint 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 MenuPrint 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 @ =gUnknown_083F7EB8 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 MenuPrint mov r3, r8 ldrb r1, [r3, 0x11] mov r0, sp movs r2, 0x2 movs r3, 0x2 bl ConvertIntToHexStringN ldr r4, _080527B8 @ =gUnknown_082165F8 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 MenuPrint _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 @ =gUnknown_020297DC ldrb r0, [r0] add r6, sp, 0x48 cmp r0, 0x1 bne _08052814 movs r1, 0 ldr r3, _08052848 @ =gUnknown_03004840 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 @ =gUnknown_03004830 strh r0, [r1] ldr r1, _08052850 @ =gUnknown_020297E0 movs r0, 0 str r0, [r1] ldr r1, _08052844 @ =gUnknown_020297DC movs r0, 0x2 strb r0, [r1] movs r4, 0 ldr r2, _08052854 @ =0x02000000 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 @ =gUnknown_020297E8 movs r0, 0 strb r0, [r1] _08052814: movs r4, 0 movs r0, 0x1 mov r8, r0 ldr r7, _08052858 @ =gUnknown_020297E8 ldr r5, _08052850 @ =gUnknown_020297E0 ldr r1, _08052854 @ =0x02000000 mov r9, r1 ldr r3, _0805285C @ =gUnknown_020297E4 _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 gUnknown_020297DC _08052848: .4byte gUnknown_03004840 _0805284C: .4byte gUnknown_03004830 _08052850: .4byte gUnknown_020297E0 _08052854: .4byte 0x02000000 _08052858: .4byte gUnknown_020297E8 _0805285C: .4byte gUnknown_020297E4 _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 @ =gUnknown_03004830 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 @ =gUnknown_082165F8 mov r0, sp bl StringAppend ldr r0, _08052908 @ =gUnknown_020297E0 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 @ =gUnknown_08216600 mov r0, sp bl StringAppend ldr r4, _08052910 @ =gUnknown_020297DC ldrb r0, [r4] cmp r0, 0x3 bne _080528E8 ldr r0, _08052914 @ =gUnknown_020297E4 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 MenuPrint add sp, 0x58 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052900: .4byte gUnknown_03004830 _08052904: .4byte gUnknown_082165F8 _08052908: .4byte gUnknown_020297E0 _0805290C: .4byte gUnknown_08216600 _08052910: .4byte gUnknown_020297DC _08052914: .4byte gUnknown_020297E4 thumb_func_end sub_80527BC thumb_func_start sub_8052918 sub_8052918: @ 8052918 push {r4-r6,lr} sub sp, 0x4C ldr r2, _08052A88 @ =gMain ldrh r1, [r2, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 ldr r4, _08052A8C @ =gUnknown_03000560 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 @ =0x75300000 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 @ =0xfffffc18 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 @ =0x00007530 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 @ =gUnknown_03000560 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 @ =gUnknown_03000560 _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 gMain _08052A8C: .4byte gUnknown_03000560 _08052A90: .4byte 0x75300000 _08052A94: .4byte 0xfffffc18 _08052A98: .4byte 0x00007530 _08052A9C: movs r0, 0xFF strb r0, [r5, 0x8] _08052AA0: ldr r4, _08052AE8 @ =gUnknown_03000560 ldrb r0, [r4, 0x10] cmp r0, 0 beq _08052AB0 bl sub_8052530 movs r0, 0 strb r0, [r4, 0x10] _08052AB0: ldr r3, _08052AEC @ =gMain ldrh r1, [r3, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08052AD4 ldr r2, _08052AF0 @ =gUnknown_020297DC ldrb r0, [r2] adds r1, r0, 0 cmp r1, 0 bne _08052ADC adds r0, 0x1 strb r0, [r2] ldr r0, _08052AF4 @ =gUnknown_020297E0 str r1, [r0] ldrh r0, [r3, 0x20] bl SeedRng _08052AD4: ldr r0, _08052AF0 @ =gUnknown_020297DC 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 gUnknown_03000560 _08052AEC: .4byte gMain _08052AF0: .4byte gUnknown_020297DC _08052AF4: .4byte gUnknown_020297E0 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 MenuDrawTextWindow ldr r0, _08052BBC @ =gMultiText_BerryBlenderMaxSpeedRecord movs r1, 0x8 movs r2, 0x4 bl MenuPrint ldr r0, _08052BC0 @ =gMultiText_2P3P4P movs r1, 0x8 movs r2, 0x9 bl MenuPrint movs r0, 0 mov r8, r0 ldr r0, _08052BC4 @ =gSaveBlock1 movs r7, 0x90 lsls r7, 20 ldr r1, _08052BC8 @ =0x0000096c 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 @ =gOtherText_RPM bl StringAppend lsrs r2, r7, 24 mov r0, sp movs r1, 0xF bl MenuPrint 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 gMultiText_BerryBlenderMaxSpeedRecord _08052BC0: .4byte gMultiText_2P3P4P _08052BC4: .4byte gSaveBlock1 _08052BC8: .4byte 0x0000096c _08052BCC: .4byte gOtherText_RPM 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 @ =gTasks 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 @ =0x0000016f bl PlayFanfare ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08052BF6: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08052C16 ldr r0, _08052C24 @ =gUnknown_03004854 ldr r0, [r0] movs r1, 0xBC lsls r1, 1 adds r0, r1 ldrh r0, [r0] bl PlayBGM adds r0, r5, 0 bl DestroyTask _08052C16: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08052C1C: .4byte gTasks _08052C20: .4byte 0x0000016f _08052C24: .4byte gUnknown_03004854 thumb_func_end sub_8052BD0