diff options
Diffstat (limited to 'asm-de/berry_blender.s')
-rw-r--r-- | asm-de/berry_blender.s | 9141 |
1 files changed, 9141 insertions, 0 deletions
diff --git a/asm-de/berry_blender.s b/asm-de/berry_blender.s new file mode 100644 index 000000000..59aa1894a --- /dev/null +++ b/asm-de/berry_blender.s @@ -0,0 +1,9141 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + 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 @ =gSpecialVar_0x8004 + 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 gSpecialVar_0x8004 +_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, 0x5 + 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 @ =gSpecialVar_0x8004 + 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 gSpecialVar_0x8004 +_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 @ =gScriptItemId + 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 gScriptItemId +_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 GetBlockReceivedStatus + 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 @ =gScriptItemId + 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 gScriptItemId +_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 @ =gSpecialVar_0x8004 + 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 @ =gSpecialVar_0x8004 + 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 gSpecialVar_0x8004 +_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 @ =gSpecialVar_0x8004 + 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 gSpecialVar_0x8004 +_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 @ =gSpecialVar_0x8004 + 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 gSpecialVar_0x8004 +_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 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r4, r0 + bcc _080509CC + b _08050C82 + .align 2, 0 +_080509F0: .4byte gUnknown_03004854 +_080509F4: .4byte gSpecialVar_0x8004 +_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 GetBlockReceivedStatus + 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 IncrementGameStat + b _08050C82 + .align 2, 0 +_08050AFC: .4byte gUnknown_03004834 +_08050B00: + movs r0, 0x21 + bl IncrementGameStat + 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 @ =gSoftResetDisabled + movs r0, 0x1 + strb r0, [r1] + b _08050E28 + .align 2, 0 +_08050D68: .4byte gUnknown_03004854 +_08050D6C: .4byte gSoftResetDisabled +_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 @ =gSoftResetDisabled + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _08050E2A + .align 2, 0 +_08050E24: .4byte gSoftResetDisabled +_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 _080510AC +_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 _08050F00 + .4byte _08050F54 + .4byte _08050F74 + .4byte _08050F92 + .4byte _08050FBC + .4byte _08050FEC + .4byte _08051008 + .4byte _08051018 + .4byte _0805103C + .4byte _0805107C + .4byte _0805109E +_08050E8C: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x70 + ldrh r2, [r0] + ldr r0, _08050EB8 @ =0x00002222 + cmp r2, r0 + beq _08050F8A + ldr r0, _08050EBC @ =0x00001111 + cmp r2, r0 + beq _08050EA2 + b _080510AC +_08050EA2: + 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 _080510AC + .align 2, 0 +_08050EB8: .4byte 0x00002222 +_08050EBC: .4byte 0x00001111 +_08050EC0: .4byte 0x00009999 +_08050EC4: + ldr r0, _08050ED4 @ =0x0000aaaa + cmp r2, r0 + bne _08050F8A + adds r1, 0x6F + movs r0, 0x1 + strb r0, [r1] + b _080510AC + .align 2, 0 +_08050ED4: .4byte 0x0000aaaa +_08050ED8: + ldr r0, [r5] + adds r0, 0x6F + movs r1, 0x3 + strb r1, [r0] + bl DestroyMenuCursor + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r4, _08050EF8 @ =gStringVar4 + ldr r1, _08050EFC @ =gOtherText_OtherCaseIsFull + b _08050F1E + .align 2, 0 +_08050EF8: .4byte gStringVar4 +_08050EFC: .4byte gOtherText_OtherCaseIsFull +_08050F00: + ldr r1, [r5] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl DestroyMenuCursor + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r4, _08050F48 @ =gStringVar4 + ldr r1, _08050F4C @ =gOtherText_NoBerriesForBlend +_08050F1E: + adds r0, r4, 0 + bl StringCopy + ldr r0, [r5] + adds r0, 0x7A + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _08050F50 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r4, 0 + bl de_sub_8073110 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + b _080510AC + .align 2, 0 +_08050F48: .4byte gStringVar4 +_08050F4C: .4byte gOtherText_NoBerriesForBlend +_08050F50: .4byte gLinkPlayers + 0x8 +_08050F54: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + bne _08050F60 + b _080510AC +_08050F60: + ldr r0, _08050F70 @ =gUnknown_03004854 + ldr r1, [r0] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08051094 + .align 2, 0 +_08050F70: .4byte gUnknown_03004854 +_08050F74: + 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 _08050F88 + b _080510AC +_08050F88: + adds r1, r2, 0 +_08050F8A: + adds r1, 0x6F + movs r0, 0x5 + strb r0, [r1] + b _080510AC +_08050F92: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08050FB4 @ =gMultiText_Saving + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + bl sub_80084A4 + ldr r0, _08050FB8 @ =gUnknown_03004854 + ldr r1, [r0] + b _08051094 + .align 2, 0 +_08050FB4: .4byte gMultiText_Saving +_08050FB8: .4byte gUnknown_03004854 +_08050FBC: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080510AC + ldr r3, _08050FE8 @ =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 _080510AC + .align 2, 0 +_08050FE8: .4byte gUnknown_03004854 +_08050FEC: + bl sub_8050CE8 + lsls r0, 24 + cmp r0, 0 + beq _080510AC + movs r0, 0x37 + bl PlaySE + ldr r0, _08051004 @ =gUnknown_03004854 + ldr r1, [r0] + b _08051094 + .align 2, 0 +_08051004: .4byte gUnknown_03004854 +_08051008: + ldr r1, [r5] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_80084A4 + b _080510AC +_08051018: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080510AC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08051038 @ =gUnknown_03004854 + ldr r1, [r0] + b _08051094 + .align 2, 0 +_08051038: .4byte gUnknown_03004854 +_0805103C: + ldr r0, _08051064 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080510AC + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x70 + ldrh r1, [r0] + ldr r0, _08051068 @ =0x00002222 + cmp r1, r0 + bne _08051070 + ldr r0, _0805106C @ =sub_804E538 + bl SetMainCallback2 + b _080510AC + .align 2, 0 +_08051064: .4byte gPaletteFade +_08051068: .4byte 0x00002222 +_0805106C: .4byte sub_804E538 +_08051070: + movs r1, 0x98 + lsls r1, 1 + adds r0, r2, r1 + str r3, [r0] + adds r1, r2, 0 + b _08051094 +_0805107C: + 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 _080510AC + bl sub_800832C + ldr r1, [r5] +_08051094: + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080510AC +_0805109E: + ldr r0, _080510C8 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080510AC + ldr r0, _080510CC @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 +_080510AC: + bl sub_805123C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080510C8: .4byte gReceivedRemoteLinkPlayers +_080510CC: .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 DestroyMenuCursor + 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 DestroyMenuCursor + 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 _08052006 +_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 _08051F40 + .4byte _08051F54 + .4byte _08051FF4 +_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 _08052006 +_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 _08052006 +_08051CCA: + movs r0, 0 + str r0, [r2] + b _08051FDE +_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 _08052006 +_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 _08051FDE + .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, _08051F10 @ =gOtherText_ResultsOfBlending + movs r1, 0x5 + movs r2, 0x3 + movs r3, 0xA0 + bl sub_8072BD8 + movs r6, 0 + ldr r1, _08051F14 @ =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, _08051F18 @ =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, _08051F1C @ =gOtherText_Berry + bl de_sub_8073174 + 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, _08051F20 @ =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, _08051F24 @ =gUnknown_082165E9 + adds r1, 0x88 + ldrb r2, [r1] + adds r3, r2, r3 + ldr r1, _08051F28 @ =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, _08051F14 @ =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, _08051F2C @ =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 r0, 0xB8 + strb r0, [r7] + adds r7, 0x1 + adds r0, r7, 0 + mov r1, r9 + movs r2, 0x88 + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F30 @ =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, _08051F34 @ =gOtherText_RequiredTime + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + mov r1, r9 + movs r2, 0x63 + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F38 @ =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, _08051F3C @ =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 _08051FDE + .align 2, 0 +_08051F10: .4byte gOtherText_ResultsOfBlending +_08051F14: .4byte gUnknown_03004854 +_08051F18: .4byte gLinkPlayers +_08051F1C: .4byte gOtherText_Berry +_08051F20: .4byte gLinkPlayers + 0x8 +_08051F24: .4byte gUnknown_082165E9 +_08051F28: .4byte gUnknown_082165EE +_08051F2C: .4byte gOtherText_MaxSpeed +_08051F30: .4byte gOtherText_RPM +_08051F34: .4byte gOtherText_RequiredTime +_08051F38: .4byte gOtherText_Min +_08051F3C: .4byte gOtherText_Sec +_08051F40: + ldr r0, _08051F50 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08052006 + ldr r1, [r2] + b _08051FDE + .align 2, 0 +_08051F50: .4byte gMain +_08051F54: + 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, _08051FE8 @ =gUnknown_03004854 + ldr r0, [r0] + adds r3, r0, 0 + adds r3, 0x80 + add r2, sp, 0x20 +_08051F72: + lsls r1, r6, 1 + adds r0, r3, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _08051F82 + adds r1, r2, r1 + subs r0, 0x85 + strh r0, [r1] +_08051F82: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08051F72 + bl sub_8050760 + ldr r4, _08051FE8 @ =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, _08051FEC @ =sub_8052BD0 + movs r1, 0x6 + bl CreateTask + ldr r0, [r4] + adds r0, 0xAB + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + ldr r0, _08051FF0 @ =gScriptItemId + ldrh r0, [r0] + movs r1, 0x1 + bl RemoveBagItem + adds r0, r5, 0 + bl sub_810CA34 + ldr r1, [r4] +_08051FDE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08052006 + .align 2, 0 +_08051FE8: .4byte gUnknown_03004854 +_08051FEC: .4byte sub_8052BD0 +_08051FF0: .4byte gScriptItemId +_08051FF4: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _08052006 + bl sub_8051C24 + movs r0, 0x1 + b _08052008 +_08052006: + movs r0, 0 +_08052008: + 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 @ =gPokeblockNames + 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 de_sub_8073174 + 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 gPokeblockNames +_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 CopyItemName + 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 CopyItemName + 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 @ =gPokeblockNames + 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 gPokeblockNames +_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, r8 + push {r7} + sub sp, 0x20 + movs r0, 0x6 + movs r1, 0x3 + movs r2, 0x17 + movs r3, 0x10 + bl MenuDrawTextWindow + ldr r0, _08052BAC @ =gMultiText_BerryBlenderMaxSpeedRecord + movs r1, 0x8 + movs r2, 0x4 + bl MenuPrint + ldr r0, _08052BB0 @ =gMultiText_2P3P4P + movs r1, 0x8 + movs r2, 0x9 + bl MenuPrint + movs r0, 0 + mov r8, r0 + ldr r0, _08052BB4 @ =gSaveBlock1 + movs r7, 0x90 + lsls r7, 20 + ldr r1, _08052BB8 @ =0x0000096c + adds r6, r0, r1 +_08052B4A: + 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 + movs r0, 0xB8 + strb r0, [r5] + adds r5, 0x1 + 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, _08052BBC @ =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 _08052B4A + add sp, 0x20 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08052BAC: .4byte gMultiText_BerryBlenderMaxSpeedRecord +_08052BB0: .4byte gMultiText_2P3P4P +_08052BB4: .4byte gSaveBlock1 +_08052BB8: .4byte 0x0000096c +_08052BBC: .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 |