.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_807F738 sub_807F738: @ 807F738 push {lr} ldr r0, =gMPlay_SE2 ldr r1, =0x0000ffff ldr r2, =gUnknown_020322A4 ldr r2, [r2] adds r2, 0x4C movs r3, 0 ldrsh r2, [r2, r3] subs r2, 0x80 lsls r2, 17 asrs r2, 16 bl m4aMPlayPitchControl pop {r0} bx r0 .pool thumb_func_end sub_807F738 thumb_func_start sub_807F764 sub_807F764: @ 807F764 push {r4,lr} sub sp, 0x10 bl sub_8082DF4 ldr r0, =gUnknown_020322A4 ldr r0, [r0] mov r12, r0 movs r0, 0xA0 lsls r0, 1 add r0, r12 ldr r1, [r0] movs r0, 0xA2 lsls r0, 1 add r0, r12 ldr r2, [r0] movs r0, 0xA4 lsls r0, 1 add r0, r12 movs r4, 0 ldrsh r3, [r0, r4] movs r0, 0xA5 lsls r0, 1 add r0, r12 movs r4, 0 ldrsh r0, [r0, r4] str r0, [sp] movs r0, 0xA6 lsls r0, 1 add r0, r12 movs r4, 0 ldrsh r0, [r0, r4] str r0, [sp, 0x4] movs r0, 0xA7 lsls r0, 1 add r0, r12 movs r4, 0 ldrsh r0, [r0, r4] str r0, [sp, 0x8] movs r0, 0xA8 lsls r0, 1 add r0, r12 ldrh r0, [r0] str r0, [sp, 0xC] movs r0, 0x2 bl SetBgAffine bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_807F764 thumb_func_start sub_807F7D8 sub_807F7D8: @ 807F7D8 push {r4,r5,lr} ldr r1, =gUnknown_020322A4 ldr r0, [r1] ldrb r0, [r0, 0x1] adds r5, r1, 0 cmp r0, 0x9 bls _0807F7E8 b _0807F9C8 _0807F7E8: lsls r0, 2 ldr r1, =_0807F7FC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0807F7FC: .4byte _0807F824 .4byte _0807F854 .4byte _0807F880 .4byte _0807F8AC .4byte _0807F8C8 .4byte _0807F8F4 .4byte _0807F910 .4byte _0807F940 .4byte _0807F950 .4byte _0807F980 _0807F824: ldr r5, =gUnknown_08D91598 adds r0, r5, 0 bl sub_8034974 adds r0, 0x64 bl AllocZeroed adds r1, r0, 0 ldr r4, =gUnknown_020322A4 ldr r0, [r4] ldr r2, =0x000011bc adds r0, r2 str r1, [r0] adds r0, r5, 0 bl LZDecompressWram ldr r1, [r4] b _0807F966 .pool _0807F854: ldr r1, =gUnknown_083390F4 movs r2, 0x80 lsls r2, 3 movs r0, 0x2 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x2 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_083390D4 movs r2, 0x80 lsls r2, 1 movs r1, 0 bl LoadPalette b _0807F962 .pool _0807F880: ldr r0, [r5] ldr r1, =0x000011bc adds r0, r1 ldr r4, [r0] ldr r0, =gUnknown_08D91598 bl sub_8034974 adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x2 adds r1, r4, 0 movs r3, 0 bl LoadBgTiles ldr r1, [r5] b _0807F966 .pool _0807F8AC: ldr r0, =gUnknown_08D91DB8 ldr r1, [r5] ldr r2, =0x000011bc adds r1, r2 ldr r1, [r1] bl LZDecompressWram ldr r1, [r5] b _0807F966 .pool _0807F8C8: ldr r0, [r5] ldr r1, =0x000011bc adds r0, r1 ldr r4, [r0] ldr r0, =gUnknown_08D91DB8 bl sub_8034974 adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x1 adds r1, r4, 0 movs r3, 0 bl LoadBgTiles ldr r1, [r5] b _0807F966 .pool _0807F8F4: ldr r0, =gUnknown_08D927EC ldr r1, [r5] ldr r2, =0x000011bc adds r1, r2 ldr r1, [r1] bl LZDecompressWram ldr r1, [r5] b _0807F966 .pool _0807F910: ldr r0, [r5] ldr r1, =0x000011bc adds r0, r1 ldr r4, [r0] ldr r0, =gUnknown_08D927EC bl sub_8034974 adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x1 adds r1, r4, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram ldr r1, [r5] b _0807F966 .pool _0807F940: ldr r0, =gUnknown_083394F4 movs r1, 0x80 movs r2, 0x20 bl LoadPalette b _0807F962 .pool _0807F950: ldr r0, =gUnknown_08339AC0 bl LoadSpriteSheet ldr r0, =gUnknown_08339BD8 bl LoadSpriteSheet ldr r0, =gUnknown_08339B38 bl LoadSpriteSheet _0807F962: ldr r0, =gUnknown_020322A4 ldr r1, [r0] _0807F966: ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _0807F9C8 .pool _0807F980: ldr r0, =gUnknown_08339C24 bl LoadSpriteSheet ldr r0, =gUnknown_08339C58 bl LoadSpriteSheet ldr r0, =gUnknown_08339AD0 bl LoadSpritePalette ldr r0, =gUnknown_08339AC8 bl LoadSpritePalette ldr r4, =gUnknown_020322A4 ldr r0, [r4] ldr r2, =0x000011bc adds r0, r2 ldr r0, [r0] bl Free ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x1] movs r0, 0x1 b _0807F9CA .pool _0807F9C8: movs r0, 0 _0807F9CA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807F7D8 thumb_func_start sub_807F9D0 sub_807F9D0: @ 807F9D0 push {lr} sub sp, 0x8 movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuRegBits movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_807F9D0 thumb_func_start sub_807FA34 sub_807FA34: @ 807FA34 push {r4,lr} sub sp, 0x8 ldr r0, =gUnknown_08339980 bl InitWindows lsls r0, 16 cmp r0, 0 beq _0807FA74 bl DeactivateAllTextPrinters movs r4, 0 _0807FA4A: lsls r0, r4, 24 lsrs r0, 24 movs r1, 0 bl FillWindowPixelBuffer adds r4, 0x1 cmp r4, 0x4 ble _0807FA4A movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0xE0 bl sub_81978B0 _0807FA74: add sp, 0x8 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_807FA34 thumb_func_start sub_807FA80 sub_807FA80: @ 807FA80 push {r4,lr} ldr r4, =gUnknown_020322A4 ldr r0, [r4] cmp r0, 0 bne _0807FA94 movs r0, 0x8F lsls r0, 5 bl AllocZeroed str r0, [r4] _0807FA94: ldr r0, [r4] adds r0, 0x63 movs r1, 0 strb r1, [r0] ldr r0, [r4] strb r1, [r0] ldr r0, [r4] adds r0, 0x63 strb r1, [r0] ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_807FE54 ldr r0, =sub_807FAC8 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_807FA80 thumb_func_start sub_807FAC8 sub_807FAC8: @ 807FAC8 push {r4-r6,lr} sub sp, 0x4 ldr r1, =gUnknown_020322A4 ldr r0, [r1] ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0x6 bls _0807FADA b _0807FCE2 _0807FADA: lsls r0, 2 ldr r1, =_0807FAEC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0807FAEC: .4byte _0807FB08 .4byte _0807FBAC .4byte _0807FC38 .4byte _0807FC4E .4byte _0807FC64 .4byte _0807FC90 .4byte _0807FCB0 _0807FB08: movs r0, 0 movs r1, 0 bl SetGpuReg bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0 bl SetVBlankCallback movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_08339974 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, =gUnknown_020322A4 ldr r1, [r4] movs r0, 0xDC lsls r0, 1 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x000009b8 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer movs r0, 0 movs r1, 0x1 movs r2, 0xD0 bl sub_809882C movs r0, 0 movs r1, 0x14 movs r2, 0xF0 bl copy_textbox_border_tile_patterns_to_vram bl sub_807FA34 ldr r1, [r4] ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r3, [r4] movs r1, 0x8C lsls r1, 1 adds r0, r3, r1 movs r1, 0 strh r2, [r0] movs r4, 0x8B lsls r4, 1 adds r0, r3, r4 strh r2, [r0] movs r0, 0x8D lsls r0, 1 adds r4, r3, r0 movs r0, 0x50 strh r0, [r4] movs r4, 0x8E lsls r4, 1 adds r0, r3, r4 strh r2, [r0] adds r4, 0x2 adds r0, r3, r4 strh r2, [r0] strb r1, [r3, 0x1] bl sub_8082D28 b _0807FCE2 .pool _0807FBAC: bl sub_807F7D8 lsls r0, 24 cmp r0, 0 bne _0807FBB8 b _0807FCE2 _0807FBB8: movs r4, 0 ldr r5, =gUnknown_083399C8 ldr r6, =gUnknown_020322A4 _0807FBBE: ldrb r1, [r5] ldrb r2, [r5, 0x1] ldr r0, =gUnknown_08339AD8 movs r3, 0x1 bl CreateSprite ldr r1, [r6] adds r1, 0x50 adds r1, r4 strb r0, [r1] ldr r0, [r6] adds r0, 0x50 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =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 _0807FBBE ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _0807FC14 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _0807FC14 bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 _0807FC14: ldr r0, =sub_807F764 bl SetVBlankCallback b _0807FCA0 .pool _0807FC38: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl sub_8082D28 b _0807FCA0 _0807FC4E: bl sub_807F9D0 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0807FCE2 b _0807FCA0 .pool _0807FC64: ldr r4, [r6] ldr r0, =0x000011b8 adds r4, r0 ldr r5, =gUnknown_0833973A bl sav2_get_text_speed adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_808417C cmp r0, 0 beq _0807FCE2 ldr r1, [r6] b _0807FCA4 .pool _0807FC90: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0807FCA0: ldr r0, =gUnknown_020322A4 ldr r1, [r0] _0807FCA4: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0807FCE2 .pool _0807FCB0: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0807FCE2 bl FreeAllWindowBuffers movs r0, 0x2 bl UnsetBgTilemapBuffer movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0 bl SetVBlankCallback ldr r0, =sub_807FFA4 bl sub_81AABF0 ldr r0, =gUnknown_020322A4 ldr r0, [r0] strb r4, [r0] _0807FCE2: bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_807FAC8 thumb_func_start sub_807FD08 sub_807FD08: @ 807FD08 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 _0807FD56 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 _0807FD50 adds r0, r4, 0 bl DestroySprite b _0807FD56 _0807FD50: movs r0, 0x74 bl PlaySE _0807FD56: 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_807FD08 thumb_func_start sub_807FD64 sub_807FD64: @ 807FD64 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, =sub_807FD08 str r1, [r0, 0x1C] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_807FD64 thumb_func_start sub_807FD90 sub_807FD90: @ 807FD90 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_80D511C 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, =gSprites add r8, r0 ldr r5, =gUnknown_08339C78 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_807FD64 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_807FD90 thumb_func_start sub_807FE14 sub_807FE14: @ 807FE14 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_807FE14 thumb_func_start sub_807FE54 sub_807FE54: @ 807FE54 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 beq _0807FE7C cmp r5, 0x1 bgt _0807FE68 cmp r5, 0 beq _0807FE72 b _0807FF88 _0807FE68: cmp r5, 0x2 beq _0807FEE8 cmp r5, 0x3 beq _0807FF3C b _0807FF88 _0807FE72: ldr r0, =gUnknown_03005D98 strb r5, [r0] b _0807FF88 .pool _0807FE7C: ldr r0, =gUnknown_03005D98 strb r5, [r0] ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r0, 0x7C movs r1, 0x2 strb r1, [r0] ldr r4, =gLinkPlayers + 8 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r4, 0 bl StringCopy movs r0, 0xD0 lsls r0, 2 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0807FEC8 adds r0, r4, 0 adds r0, 0x1C ldr r1, =gUnknown_083397D0 ldr r1, [r1, 0xC] bl StringCopy b _0807FED4 .pool _0807FEC8: adds r0, r4, 0 adds r0, 0x1C ldr r1, =gUnknown_083397D0 ldr r1, [r1] bl StringCopy _0807FED4: ldr r1, =gLinkPlayers movs r0, 0x2 strh r0, [r1, 0x1A] strh r0, [r1, 0x36] b _0807FF88 .pool _0807FEE8: ldr r0, =gUnknown_03005D98 strb r5, [r0] ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r0, 0x7C movs r1, 0x3 strb r1, [r0] ldr r6, =gLinkPlayers + 8 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r6, 0 bl StringCopy adds r0, r6, 0 adds r0, 0x1C ldr r4, =gUnknown_083397D0 ldr r1, [r4, 0x10] bl StringCopy adds r0, r6, 0 adds r0, 0x38 ldr r1, [r4, 0x8] bl StringCopy adds r0, r6, 0 subs r0, 0x8 strh r5, [r0, 0x1A] strh r5, [r0, 0x36] adds r0, 0x52 strh r5, [r0] b _0807FF88 .pool _0807FF3C: ldr r0, =gUnknown_03005D98 strb r5, [r0] ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r0, 0x7C movs r1, 0x4 strb r1, [r0] ldr r5, =gLinkPlayers + 8 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r5, 0 bl StringCopy adds r0, r5, 0 adds r0, 0x1C ldr r4, =gUnknown_083397D0 ldr r1, [r4, 0x14] bl StringCopy adds r0, r5, 0 adds r0, 0x38 ldr r1, [r4, 0x4] bl StringCopy adds r0, r5, 0 adds r0, 0x54 ldr r1, [r4, 0x8] bl StringCopy adds r0, r5, 0 subs r0, 0x8 movs r1, 0x2 strh r1, [r0, 0x1A] strh r1, [r0, 0x36] adds r0, 0x52 strh r1, [r0] adds r0, 0x1C strh r1, [r0] _0807FF88: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_807FE54 thumb_func_start sub_807FFA4 sub_807FFA4: @ 807FFA4 push {r4,r5,lr} movs r0, 0 movs r1, 0 bl SetGpuReg ldr r4, =gUnknown_020322A4 ldr r0, [r4] cmp r0, 0 bne _0807FFC0 movs r0, 0x8F lsls r0, 5 bl AllocZeroed str r0, [r4] _0807FFC0: ldr r0, [r4] movs r1, 0 strb r1, [r0] ldr r0, [r4] movs r2, 0x86 lsls r2, 1 adds r0, r2 str r1, [r0] movs r2, 0 ldr r5, =gSpecialVar_0x8004 movs r3, 0 _0807FFD6: ldr r0, [r4] lsls r1, r2, 1 adds r0, 0x74 adds r0, r1 strh r3, [r0] adds r2, 0x1 cmp r2, 0x3 ble _0807FFD6 ldrb r0, [r5] bl sub_807FE54 ldrh r0, [r5] cmp r0, 0 bne _08080008 ldr r0, =sub_8080018 bl SetMainCallback2 b _0808000E .pool _08080008: ldr r0, =sub_80808D4 bl SetMainCallback2 _0808000E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_807FFA4 thumb_func_start sub_8080018 sub_8080018: @ 8080018 push {r4-r7,lr} sub sp, 0x4 ldr r1, =gUnknown_020322A4 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x15 bls _0808002A b _08080546 _0808002A: lsls r0, 2 ldr r1, =_0808003C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0808003C: .4byte _08080094 .4byte _08080100 .4byte _08080120 .4byte _0808019C .4byte _080801AE .4byte _080801C8 .4byte _08080546 .4byte _08080546 .4byte _080801F8 .4byte _08080248 .4byte _0808026C .4byte _08080302 .4byte _0808035C .4byte _080803D4 .4byte _08080408 .4byte _0808049C .4byte _080804D0 .4byte _08080546 .4byte _080804F8 .4byte _080804E4 .4byte _080804EA .4byte _08080508 _08080094: bl sub_8080588 ldr r1, =gUnknown_020229C6 ldr r2, =0x00004422 adds r0, r2, 0 strh r0, [r1] ldr r2, =gUnknown_020322A4 ldr r0, [r2] adds r0, 0x72 movs r1, 0 strb r1, [r0] movs r5, 0 movs r6, 0 movs r7, 0x92 lsls r7, 1 _080800B2: ldr r0, [r2] lsls r1, r5, 1 adds r0, 0x64 adds r0, r1 strh r6, [r0] adds r4, r5, 0x1 adds r1, r5 lsls r1, 1 movs r3, 0x2 _080800C4: ldr r0, [r2] adds r0, r7 adds r0, r1 strh r6, [r0] adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _080800C4 adds r5, r4, 0 cmp r5, 0x3 ble _080800B2 ldr r3, =gUnknown_020322A4 ldr r4, [r3] adds r1, r4, 0 adds r1, 0x70 movs r2, 0 movs r0, 0 strh r0, [r1] subs r1, 0x22 strh r0, [r1] strb r2, [r4, 0x1] ldr r1, [r3] b _080804FC .pool _08080100: bl sub_807F7D8 lsls r0, 24 cmp r0, 0 bne _0808010C b _08080546 _0808010C: ldr r0, =gUnknown_020322A4 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8082D28 b _08080546 .pool _08080120: movs r5, 0 ldr r4, =gUnknown_083399C8 ldr r6, =gUnknown_020322A4 _08080126: ldrb r1, [r4] ldrb r2, [r4, 0x1] ldr r0, =gUnknown_08339AD8 movs r3, 0x1 bl CreateSprite ldr r1, [r6] adds r1, 0x54 adds r1, r5 strb r0, [r1] ldr r0, [r6] adds r0, 0x54 adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =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 _08080126 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _0808016A b _080804F8 _0808016A: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08080174 b _080804F8 _08080174: bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 b _080804F8 .pool _0808019C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _080804F8 _080801AE: bl sub_807F9D0 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080801C0 b _08080546 _080801C0: b _080804F8 .pool _080801C8: ldr r4, =gUnknown_020322A4 ldr r0, [r4] ldr r3, =0x000011b8 adds r0, r3 ldr r1, =gUnknown_0833981A movs r2, 0 bl sub_808417C ldr r1, [r4] movs r2, 0 movs r0, 0x8 strb r0, [r1] ldr r0, [r4] movs r1, 0x84 lsls r1, 1 adds r0, r1 str r2, [r0] b _08080546 .pool _080801F8: ldr r4, =gUnknown_020322A4 ldr r1, [r4] ldrb r0, [r1] adds r0, 0x1 movs r6, 0 strb r0, [r1] ldr r0, [r4] movs r2, 0x8A lsls r2, 1 adds r0, r2 strb r6, [r0] ldr r0, [r4] movs r5, 0xAC lsls r5, 1 adds r0, r5 ldr r1, =gScriptItemId ldrh r1, [r1] bl sub_807FE14 ldr r0, =gUnknown_020228C4 ldr r1, [r4] adds r1, r5 movs r2, 0x10 bl memcpy bl sub_800ADF8 ldr r0, [r4] movs r3, 0x84 lsls r3, 1 adds r0, r3 str r6, [r0] b _08080546 .pool _08080248: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08080254 b _08080546 _08080254: bl sub_800A5B4 bl GetMultiplayerId lsls r0, 24 cmp r0, 0 beq _08080264 b _080804F8 _08080264: movs r0, 0x4 bl sub_800A4D8 b _080804F8 _0808026C: ldr r6, =gUnknown_020322A4 ldr r1, [r6] movs r0, 0x84 lsls r0, 1 adds r1, r0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x14 bgt _08080282 b _08080546 _08080282: movs r0, 0x4 movs r1, 0x1 bl sub_8197DF8 bl sub_800A550 adds r4, r0, 0 bl sub_800A9D8 lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _0808029E b _08080546 _0808029E: movs r5, 0 adds r7, r6, 0 movs r6, 0xAC lsls r6, 1 b _080802D4 .pool _080802AC: ldr r0, [r7] lsls r4, r5, 4 adds r0, r4, r0 adds r0, r6 lsls r1, r5, 8 ldr r2, =gUnknown_020223C4 adds r1, r2 movs r2, 0x10 bl memcpy ldr r0, [r7] lsls r2, r5, 1 adds r1, r0, 0 adds r1, 0x74 adds r1, r2 adds r0, r4 adds r0, r6 ldrh r0, [r0] strh r0, [r1] adds r5, 0x1 _080802D4: bl sub_8009FCC lsls r0, 24 lsrs r0, 24 cmp r5, r0 blt _080802AC bl sub_800A5B4 b _080804F8 .pool _080802EC: ldrb r1, [r4] lsls r1, 1 adds r0, r2, 0 adds r0, 0x74 adds r0, r1 ldrh r0, [r0] lsls r1, r5, 24 lsrs r1, 24 bl sub_807FD90 b _08080336 _08080302: bl sub_8009FCC ldr r2, =gUnknown_020322A4 ldr r1, [r2] adds r1, 0x7C strb r0, [r1] movs r5, 0 ldr r2, [r2] movs r1, 0x8A lsls r1, 1 adds r4, r2, r1 ldr r1, =gUnknown_083399D0 adds r0, r2, 0 adds r0, 0x7C ldrb r0, [r0] subs r0, 0x2 lsls r0, 2 ldrb r3, [r4] adds r0, r1 _08080328: ldrb r1, [r0] cmp r3, r1 beq _080802EC adds r0, 0x1 adds r5, 0x1 cmp r5, 0x3 ble _08080328 _08080336: ldr r3, =gUnknown_020322A4 ldr r1, [r3] movs r0, 0x84 lsls r0, 1 adds r2, r1, r0 movs r0, 0 str r0, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, [r3] movs r2, 0x8A lsls r2, 1 adds r1, r2 b _080804FC .pool _0808035C: ldr r3, [r2] movs r0, 0x84 lsls r0, 1 adds r1, r3, r0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x3C bgt _08080370 b _08080546 _08080370: movs r1, 0x8A lsls r1, 1 adds r0, r3, r1 adds r1, r3, 0 adds r1, 0x7C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcc _080803B8 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldr r2, [r2] ldr r3, =gUnknown_083399DC ldr r1, =gUnknown_083399E4 adds r0, r2, 0 adds r0, 0x7C ldrb r0, [r0] subs r0, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r0, r3 ldr r3, =0xffffa800 adds r1, r3, 0 ldrh r0, [r0] adds r1, r0 adds r2, 0x4A strh r1, [r2] b _080803BE .pool _080803B8: ldrb r0, [r3] subs r0, 0x1 strb r0, [r3] _080803BE: ldr r0, =gUnknown_020322A4 ldr r0, [r0] movs r1, 0x84 lsls r1, 1 adds r0, r1 movs r1, 0 str r1, [r0] b _08080546 .pool _080803D4: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _080803E0 b _08080546 _080803E0: ldr r2, =gUnknown_020322A4 ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] movs r2, 0xA0 lsls r2, 1 adds r0, r2 bl sub_8082CB4 movs r0, 0x2B bl PlaySE movs r0, 0x2 bl ShowBg b _08080546 .pool _08080408: movs r1, 0x80 lsls r1, 3 movs r0, 0 bl SetGpuRegBits ldr r4, =gUnknown_020322A4 ldr r2, [r4] adds r1, r2, 0 adds r1, 0x4A movs r3, 0x80 lsls r3, 2 adds r0, r3, 0 ldrh r3, [r1] adds r0, r3 strh r0, [r1] movs r0, 0x8D 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 _0808048C movs r0, 0xC movs r1, 0x2 bl SetGpuRegBits ldr r1, [r4] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r3, [r4] movs r2, 0x8D lsls r2, 1 adds r1, r3, r2 movs r0, 0x80 lsls r0, 1 strh r0, [r1] ldr r2, =gUnknown_083399DC ldr r1, =gUnknown_083399E4 adds r0, r3, 0 adds r0, 0x7C ldrb r0, [r0] subs r0, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r0, r2 ldrh r0, [r0] adds r1, r3, 0 adds r1, 0x4A strh r0, [r1] movs r0, 0x84 lsls r0, 1 adds r1, r3, r0 movs r0, 0 str r0, [r1] movs r0, 0x34 bl PlaySE bl sub_808074C bl sub_80807BC _0808048C: ldr r0, [r4] b _080804BE .pool _0808049C: bl sub_8083380 lsls r0, 24 cmp r0, 0 beq _080804BA ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r3, 0x84 lsls r3, 1 adds r2, r1, r3 movs r0, 0 str r0, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080804BA: ldr r0, =gUnknown_020322A4 ldr r0, [r0] _080804BE: movs r1, 0xA0 lsls r1, 1 adds r0, r1 bl sub_8082CB4 b _08080546 .pool _080804D0: ldr r0, =gUnknown_08339C2C movs r2, 0x10 negs r2, r2 movs r1, 0x78 movs r3, 0x3 bl CreateSprite b _080804F8 .pool _080804E4: bl sub_800ADF8 b _080804F8 _080804EA: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08080546 bl sub_800A418 _080804F8: ldr r0, =gUnknown_020322A4 ldr r1, [r0] _080804FC: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08080546 .pool _08080508: ldr r5, =gUnknown_020322A4 ldr r3, [r5] adds r1, r3, 0 adds r1, 0x4C movs r2, 0 movs r0, 0x80 strh r0, [r1] movs r1, 0x82 lsls r1, 1 adds r0, r3, r1 str r2, [r0] ldr r0, =sub_8081898 bl SetMainCallback2 bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 ldr r4, =0x00000193 cmp r0, r4 beq _08080540 bl GetCurrentMapMusic ldr r1, [r5] movs r2, 0xAA lsls r2, 1 adds r1, r2 strh r0, [r1] _08080540: adds r0, r4, 0 bl PlayBGM _08080546: ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r3, 0x8E lsls r3, 1 adds r0, r1, r3 movs r2, 0 ldrsh r0, [r0, r2] adds r3, 0x2 adds r1, r3 movs r2, 0 ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8080018 thumb_func_start sub_8080588 sub_8080588: @ 8080588 push {r4,lr} movs r0, 0 movs r1, 0 bl SetGpuReg bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r0, =sub_807F764 bl SetVBlankCallback movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_08339974 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, =gUnknown_020322A4 ldr r1, [r4] movs r0, 0xDC lsls r0, 1 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r3, =0x000009b8 adds r1, r3 movs r0, 0x2 bl SetBgTilemapBuffer movs r0, 0 movs r1, 0x1 movs r2, 0xD0 bl sub_809882C movs r0, 0 movs r1, 0x14 movs r2, 0xF0 bl copy_textbox_border_tile_patterns_to_vram bl sub_807FA34 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x44 movs r1, 0 strh r1, [r0] adds r0, 0x8 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] movs r3, 0x8E lsls r3, 1 adds r0, r2, r3 strh r1, [r0] adds r3, 0x2 adds r0, r2, r3 strh r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8080588 thumb_func_start task_tutorial_oak_boy_girl task_tutorial_oak_boy_girl: @ 8080624 push {lr} lsls r0, 16 lsls r1, 24 lsrs r0, 24 adds r2, r0, 0 adds r2, 0x18 ldr r0, =gUnknown_020322A4 ldr r0, [r0] lsrs r1, 23 adds r0, 0x96 adds r0, r1 ldrb r0, [r0] ldr r1, =gUnknown_083399E7 adds r0, r1 ldrb r1, [r0] cmp r2, r1 bcc _0808066C adds r0, r1, 0 adds r0, 0x30 cmp r2, r0 bcs _0808066C subs r0, 0x1C cmp r2, r0 bcc _08080668 adds r0, 0x8 cmp r2, r0 bcs _08080668 movs r0, 0x2 b _0808066E .pool _08080668: movs r0, 0x1 b _0808066E _0808066C: movs r0, 0 _0808066E: pop {r1} bx r1 thumb_func_end task_tutorial_oak_boy_girl thumb_func_start sub_8080674 sub_8080674: @ 8080674 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r1, 24 movs r6, 0 cmp r5, 0xAF bne _080806AC movs r4, 0 subs r7, r1, 0x1 adds r2, 0x9 _08080690: adds r0, r2, r6 adds r1, r2, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _0808069E adds r6, r4, 0 _0808069E: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _08080690 adds r0, r6, 0x5 b _080806C4 _080806AC: adds r0, r5, 0 subs r0, 0x85 lsls r0, 16 lsrs r6, r0, 16 subs r7, r1, 0x1 cmp r6, 0x4 bls _080806C8 adds r0, r6, 0 movs r1, 0x5 bl __umodsi3 adds r0, 0x5 _080806C4: lsls r0, 16 lsrs r6, r0, 16 _080806C8: movs r4, 0 cmp r4, r7 bge _08080734 ldr r0, =gUnknown_08339CA0 mov r9, r0 adds r0, r5, 0 subs r0, 0xA3 lsls r0, 16 lsrs r0, 16 mov r8, r0 _080806DC: lsls r0, r6, 1 adds r0, r6 adds r0, r4, r0 add r0, r9 ldrb r5, [r0] movs r0, 0xD0 lsls r0, 2 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0808071A ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 bne _0808071A adds r0, r6, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gUnknown_08339CBE adds r0, r6, r0 ldrb r5, [r0] mov r0, r8 cmp r0, 0x4 bhi _0808071A subs r0, r5, 0x5 lsls r0, 16 lsrs r5, r0, 16 _0808071A: adds r4, 0x1 lsls r0, r4, 24 lsrs r0, 24 adds r1, r5, 0 adds r1, 0x85 lsls r1, 16 lsrs r1, 16 bl sub_8082FDC lsls r4, 16 lsrs r4, 16 cmp r4, r7 blt _080806DC _08080734: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8080674 thumb_func_start sub_808074C sub_808074C: @ 808074C push {r4-r7,lr} movs r4, 0 ldr r7, =gUnknown_020322A4 movs r6, 0xFF ldr r5, =gUnknown_083399D0 _08080756: ldr r3, [r7] lsls r2, r4, 1 adds r0, r3, 0 adds r0, 0x96 adds r0, r2 strh r6, [r0] adds r1, r3, 0 adds r1, 0x8E adds r1, r2 adds r0, r3, 0 adds r0, 0x7C 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 _08080756 movs r3, 0 ldr r7, =gUnknown_020322A4 _08080784: movs r4, 0 adds r6, r3, 0x1 lsls r5, r3, 1 _0808078A: ldr r2, [r7] lsls r0, r4, 1 adds r1, r2, 0 adds r1, 0x8E adds r1, r0 ldrh r0, [r1] cmp r0, r3 bne _080807A2 adds r0, r2, 0 adds r0, 0x96 adds r0, r5 strh r4, [r0] _080807A2: adds r4, 0x1 cmp r4, 0x3 ble _0808078A adds r3, r6, 0 cmp r3, 0x3 ble _08080784 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_808074C thumb_func_start sub_80807BC sub_80807BC: @ 80807BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C movs r0, 0 mov r10, r0 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _080807DE bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 mov r10, r0 _080807DE: movs r6, 0 ldr r7, =gUnknown_020322A4 mov r8, r6 _080807E4: ldr r2, [r7] lsls r5, r6, 1 adds r0, r2, 0 adds r0, 0x8E adds r3, r0, r5 ldrh r0, [r3] cmp r0, 0xFF beq _080808B6 adds r1, r2, 0 adds r1, 0x50 ldrh r3, [r3] adds r1, r3 adds r0, r2, 0 adds r0, 0x54 adds r0, r6 ldrb r0, [r0] movs r2, 0 mov r9, r2 strb r0, [r1] ldr r0, [r7] adds r1, r0, 0 adds r1, 0x8E adds r1, r5 adds r0, 0x50 ldrh r1, [r1] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 mov r1, r8 lsrs r4, r1, 24 adds r1, r4, 0 bl StartSpriteAnim add r1, sp, 0x8 movs r0, 0xFF strb r0, [r1] ldr r0, [r7] adds r0, 0x8E adds r0, r5 ldrh r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, =gLinkPlayers + 8 adds r1, r0 add r0, sp, 0x8 bl StringCopy movs r0, 0x1 add r1, sp, 0x8 movs r2, 0x38 bl GetStringCenterAlignXOffset adds r2, r0, 0 ldr r0, [r7] adds r0, 0x8E adds r0, r5 mov r5, r8 ldrh r0, [r0] cmp r10, r0 bne _08080890 lsls r2, 24 lsrs r2, 24 mov r0, r9 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] adds r0, r4, 0 add r1, sp, 0x8 movs r3, 0x1 bl sub_80840D4 b _080808A6 .pool _08080890: lsls r2, 24 lsrs r2, 24 mov r1, r9 str r1, [sp] movs r0, 0x1 str r0, [sp, 0x4] adds r0, r4, 0 add r1, sp, 0x8 movs r3, 0x1 bl sub_80840D4 _080808A6: lsrs r4, r5, 24 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram _080808B6: movs r2, 0x80 lsls r2, 17 add r8, r2 adds r6, 0x1 cmp r6, 0x3 ble _080807E4 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80807BC thumb_func_start sub_80808D4 sub_80808D4: @ 80808D4 push {r4-r7,lr} sub sp, 0x4 ldr r1, =gUnknown_020322A4 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x15 bls _080808E6 b _08080DAE _080808E6: lsls r0, 2 ldr r1, =_080808F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080808F8: .4byte _08080950 .4byte _080809E4 .4byte _08080A04 .4byte _08080A58 .4byte _08080A84 .4byte _08080DAE .4byte _08080DAE .4byte _08080DAE .4byte _08080ABC .4byte _08080DAE .4byte _08080DAE .4byte _08080AEC .4byte _08080B3C .4byte _08080BB0 .4byte _08080BDC .4byte _08080C78 .4byte _08080CA0 .4byte _08080DAE .4byte _08080CAE .4byte _08080CAE .4byte _08080CAE .4byte _08080CC4 _08080950: bl sub_800B4C0 bl sub_8080588 ldr r4, =gScriptItemId ldrh r1, [r4] movs r0, 0 bl sub_8082FDC ldr r5, =gUnknown_020322A4 ldr r0, [r5] movs r6, 0xAC lsls r6, 1 adds r0, r6 ldrh r1, [r4] bl sub_807FE14 ldrh r0, [r4] ldr r2, [r5] adds r1, r2, 0 adds r1, 0x7C ldrb r1, [r1] adds r2, r6 bl sub_8080674 movs r4, 0 movs r6, 0 ldr r0, =gUnknown_020229C6 mov r12, r0 movs r7, 0x92 lsls r7, 1 _0808098E: ldr r0, [r5] lsls r1, r4, 1 adds r0, 0x64 adds r0, r1 strh r6, [r0] adds r3, r4, 0x1 adds r1, r4 lsls r1, 1 movs r2, 0x2 _080809A0: ldr r0, [r5] adds r0, r7 adds r0, r1 strh r6, [r0] adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080809A0 adds r4, r3, 0 cmp r4, 0x3 ble _0808098E ldr r4, =gUnknown_020322A4 ldr r3, [r4] adds r1, r3, 0 adds r1, 0x70 movs r2, 0 movs r0, 0 strh r0, [r1] strb r2, [r3, 0x1] ldr r1, =0x00004422 adds r0, r1, 0 mov r2, r12 strh r0, [r2] ldr r1, [r4] b _08080CB2 .pool _080809E4: bl sub_807F7D8 lsls r0, 24 cmp r0, 0 bne _080809F0 b _08080DAE _080809F0: ldr r0, =gUnknown_020322A4 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8082D28 b _08080DAE .pool _08080A04: movs r4, 0 ldr r5, =gUnknown_083399C8 ldr r6, =gUnknown_020322A4 _08080A0A: ldrb r1, [r5] ldrb r2, [r5, 0x1] ldr r0, =gUnknown_08339AD8 movs r3, 0x1 bl CreateSprite ldr r1, [r6] adds r1, 0x54 adds r1, r4 strb r0, [r1] ldr r0, [r6] adds r0, 0x54 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =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 _08080A0A b _08080CAE .pool _08080A58: 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, =gUnknown_020322A4 ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] movs r3, 0x84 lsls r3, 1 adds r0, r3 str r4, [r0] b _08080DAE .pool _08080A84: ldr r4, =gUnknown_020322A4 ldr r1, [r4] movs r5, 0x84 lsls r5, 1 adds r1, r5 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x2 bne _08080A9C bl sub_807F9D0 _08080A9C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08080AAA b _08080DAE _08080AAA: ldr r1, [r4] movs r0, 0x8 strb r0, [r1] b _08080DAE .pool _08080ABC: ldr r2, =gUnknown_020322A4 ldr r1, [r2] movs r3, 0 movs r0, 0xB strb r0, [r1] ldr r0, [r2] movs r1, 0x8A lsls r1, 1 adds r0, r1 strb r3, [r0] b _08080DAE .pool _08080AD8: lsls r1, 1 adds r0, r3, 0 adds r0, 0x74 adds r0, r1 ldrh r0, [r0] lsls r1, r4, 24 lsrs r1, 24 bl sub_807FD90 b _08080B16 _08080AEC: movs r4, 0 ldr r2, =gUnknown_083399D0 ldr r0, =gUnknown_020322A4 ldr r3, [r0] adds r0, r3, 0 adds r0, 0x7C ldrb r0, [r0] subs r0, 0x2 lsls r0, 2 movs r5, 0x8A lsls r5, 1 adds r1, r3, r5 ldrb r1, [r1] adds r0, r2 _08080B08: ldrb r2, [r0] cmp r1, r2 beq _08080AD8 adds r0, 0x1 adds r4, 0x1 cmp r4, 0x3 ble _08080B08 _08080B16: ldr r3, =gUnknown_020322A4 ldr r1, [r3] movs r5, 0x84 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, 0x8A lsls r0, 1 adds r1, r0 b _08080CB2 .pool _08080B3C: ldr r3, [r2] movs r2, 0x84 lsls r2, 1 adds r1, r3, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x3C bgt _08080B50 b _08080DAE _08080B50: movs r5, 0x8A lsls r5, 1 adds r0, r3, r5 adds r4, r3, 0 adds r4, 0x7C ldrb r0, [r0] ldrb r1, [r4] cmp r0, r1 bcc _08080B94 ldr r2, =gUnknown_083399DC ldr r1, =gUnknown_083399E4 ldrb r0, [r4] subs r0, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r0, r2 ldr r2, =0xffffa800 adds r1, r2, 0 ldrh r0, [r0] adds r1, r0 adds r0, r3, 0 adds r0, 0x4A strh r1, [r0] ldrb r0, [r3] adds r0, 0x1 b _08080B98 .pool _08080B94: ldrb r0, [r3] subs r0, 0x1 _08080B98: strb r0, [r3] ldr r0, =gUnknown_020322A4 ldr r0, [r0] movs r3, 0x84 lsls r3, 1 adds r0, r3 movs r1, 0 str r1, [r0] b _08080DAE .pool _08080BB0: ldr r4, =gUnknown_020322A4 ldr r1, [r4] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_808074C movs r0, 0x2B bl PlaySE ldr r0, [r4] movs r5, 0xA0 lsls r5, 1 adds r0, r5 bl sub_8082CB4 movs r0, 0x2 bl ShowBg b _08080DAE .pool _08080BDC: movs r1, 0x80 lsls r1, 3 movs r0, 0 bl SetGpuRegBits ldr r4, =gUnknown_020322A4 ldr r2, [r4] adds r1, r2, 0 adds r1, 0x4A movs r3, 0x80 lsls r3, 2 adds r0, r3, 0 ldrh r5, [r1] adds r0, r5 strh r0, [r1] movs r0, 0x8D 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 _08080C5C ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldr r3, [r4] movs r2, 0x8D lsls r2, 1 adds r1, r3, r2 movs r0, 0x80 lsls r0, 1 strh r0, [r1] ldr r2, =gUnknown_083399DC ldr r1, =gUnknown_083399E4 adds r0, r3, 0 adds r0, 0x7C 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, 0x4A strh r1, [r0] movs r0, 0xC movs r1, 0x2 bl SetGpuRegBits ldr r0, [r4] movs r3, 0x84 lsls r3, 1 adds r0, r3 movs r1, 0 str r1, [r0] movs r0, 0x34 bl PlaySE bl sub_80807BC _08080C5C: ldr r0, [r4] movs r5, 0xA0 lsls r5, 1 adds r0, r5 bl sub_8082CB4 b _08080DAE .pool _08080C78: bl sub_8083380 lsls r0, 24 cmp r0, 0 beq _08080C8C ldr r0, =gUnknown_020322A4 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08080C8C: ldr r0, =gUnknown_020322A4 ldr r0, [r0] movs r1, 0xA0 lsls r1, 1 adds r0, r1 bl sub_8082CB4 b _08080DAE .pool _08080CA0: ldr r0, =gUnknown_08339C2C movs r2, 0x10 negs r2, r2 movs r1, 0x78 movs r3, 0x3 bl CreateSprite _08080CAE: ldr r0, =gUnknown_020322A4 ldr r1, [r0] _08080CB2: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08080DAE .pool _08080CC4: bl sub_8080DF8 ldr r5, =gUnknown_020322A4 ldr r4, [r5] adds r1, r4, 0 adds r1, 0x4C movs r3, 0 movs r2, 0 movs r0, 0x80 strh r0, [r1] movs r1, 0x82 lsls r1, 1 adds r0, r4, r1 str r2, [r0] ldr r2, =0x00000123 adds r0, r4, r2 strb r3, [r0] ldr r0, [r5] adds r0, 0x72 strb r3, [r0] ldr r0, =sub_8081898 bl SetMainCallback2 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 bne _08080D44 movs r0, 0xD0 lsls r0, 2 bl FlagGet lsls r0, 24 cmp r0, 0 bne _08080D30 ldr r0, =sub_8081224 movs r1, 0xA bl CreateTask ldr r1, [r5] movs r3, 0x90 lsls r3, 1 adds r1, r3 b _08080D42 .pool _08080D30: ldr r0, =gUnknown_083399EC ldr r0, [r0] movs r1, 0xA bl CreateTask ldr r1, [r5] movs r5, 0x90 lsls r5, 1 adds r1, r5 _08080D42: strb r0, [r1] _08080D44: ldr r1, =gSpecialVar_0x8004 ldrh r0, [r1] cmp r0, 0x1 bls _08080D80 movs r4, 0 ldrh r1, [r1] cmp r4, r1 bge _08080D80 movs r5, 0xA0 lsls r5, 20 ldr r6, =gUnknown_083399EC _08080D5A: ldm r6!, {r0} lsrs r1, r5, 24 bl CreateTask ldr r1, =gUnknown_020322A4 ldr r1, [r1] movs r2, 0x90 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, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r4, r0 blt _08080D5A _08080D80: bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 ldr r4, =0x00000193 cmp r0, r4 beq _08080D9E bl GetCurrentMapMusic ldr r1, =gUnknown_020322A4 ldr r1, [r1] movs r5, 0xAA lsls r5, 1 adds r1, r5 strh r0, [r1] _08080D9E: adds r0, r4, 0 bl PlayBGM movs r0, 0x35 bl PlaySE bl sub_807F738 _08080DAE: ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r2, 0x8E lsls r2, 1 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] movs r5, 0x8F lsls r5, 1 adds r1, r5 movs r2, 0 ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80808D4 thumb_func_start sub_8080DF8 sub_8080DF8: @ 8080DF8 push {lr} ldr r3, =gUnknown_03003110 movs r0, 0 ldr r1, =gUnknown_03003090 movs r2, 0x3 _08080E02: strh r0, [r3] strh r0, [r3, 0x4] strh r0, [r1] strh r0, [r1, 0x4] adds r1, 0x10 subs r2, 0x1 cmp r2, 0 bge _08080E02 pop {r0} bx r0 .pool thumb_func_end sub_8080DF8 thumb_func_start sub_8080E20 sub_8080E20: @ 8080E20 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, =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 _08080E58 ldr r0, =gUnknown_03003090 movs r4, 0xC ldrsh r1, [r2, r4] lsls r1, 4 adds r0, 0x4 adds r1, r0 ldr r0, =0x00002345 strh r0, [r1] adds r0, r3, 0 bl DestroyTask _08080E58: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8080E20 thumb_func_start sub_8080E6C sub_8080E6C: @ 8080E6C 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, =sub_8080E20 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =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 .pool thumb_func_end sub_8080E6C thumb_func_start sub_8080EA4 sub_8080EA4: @ 8080EA4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_020322A4 ldr r0, [r4] adds r0, 0x4A ldrh r0, [r0] movs r1, 0x1 bl task_tutorial_oak_boy_girl lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08080EC2 b _08080FB8 _08080EC2: ldr r2, =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 _08080ED8 b _08080FC6 _08080ED8: ldr r0, [r4] ldr r1, =0x00000123 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08080F9A bl Random lsls r0, 16 lsrs r0, 16 ldr r1, =0x0000028f bl __udivsi3 lsls r0, 24 lsrs r1, r0, 24 adds r3, r1, 0 ldr r0, [r4] adds r0, 0x4C movs r4, 0 ldrsh r2, [r0, r4] ldr r0, =0x000001f3 cmp r2, r0 bgt _08080F40 cmp r1, 0x4B bls _08080F2C ldr r1, =gUnknown_03003090 ldr r0, =0x00004523 b _08080F30 .pool _08080F2C: ldr r1, =gUnknown_03003090 ldr r0, =0x00005432 _08080F30: strh r0, [r1, 0x14] ldr r0, =0x00005432 b _08080F9E .pool _08080F40: ldr r0, =0x000005db cmp r2, r0 bgt _08080F6E cmp r1, 0x50 bhi _08080F9A adds r0, r1, 0 subs r0, 0x15 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bhi _08080F68 ldr r1, =gUnknown_03003090 ldr r0, =0x00005432 b _08080F9E .pool _08080F68: cmp r1, 0x9 bhi _08080FA0 b _08080F90 _08080F6E: cmp r1, 0x5A bhi _08080F9A adds r0, r1, 0 subs r0, 0x47 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08080F8C ldr r1, =gUnknown_03003090 ldr r0, =0x00005432 b _08080F9E .pool _08080F8C: cmp r3, 0x1D bhi _08080FA0 _08080F90: movs r0, 0x1 movs r1, 0x5 bl sub_8080E6C b _08080FA0 _08080F9A: ldr r1, =gUnknown_03003090 ldr r0, =0x00004523 _08080F9E: strh r0, [r1, 0x14] _08080FA0: ldr r0, =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _08080FC4 .pool _08080FB8: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r0, 0 _08080FC4: strh r0, [r1, 0x8] _08080FC6: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8080EA4 thumb_func_start sub_8080FD0 sub_8080FD0: @ 8080FD0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, =gUnknown_020322A4 ldr r3, [r6] adds r0, r3, 0 adds r0, 0x4A ldrh r0, [r0] movs r1, 0xC0 lsls r1, 5 adds r0, r1 ldr r1, =0x0000ffff ands r0, r1 adds r1, r3, 0 adds r1, 0x9A ldrb r1, [r1] lsrs r2, r0, 8 ldr r0, =gUnknown_083399E7 adds r1, r0 ldrb r1, [r1] adds r0, r1, 0 adds r0, 0x14 cmp r2, r0 bls _080810E0 adds r0, 0x14 cmp r2, r0 bcs _080810E0 ldr r2, =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 _080810EE ldr r1, =0x00000123 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080810CC bl Random lsls r0, 16 lsrs r0, 16 ldr r1, =0x0000028f bl __udivsi3 lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 ldr r0, [r6] adds r0, 0x4C movs r6, 0 ldrsh r1, [r0, r6] ldr r0, =0x000001f3 cmp r1, r0 bgt _08081088 cmp r2, 0x42 bls _08081078 ldr r1, =gUnknown_03003090 ldr r0, =0x00004523 strh r0, [r1, 0x24] b _080810B0 .pool _08081078: ldr r1, =gUnknown_03003090 ldr r0, =0x00005432 strh r0, [r1, 0x24] b _080810B0 .pool _08081088: cmp r2, 0x41 bls _08081092 ldr r1, =gUnknown_03003090 ldr r0, =0x00004523 strh r0, [r1, 0x24] _08081092: adds r0, r2, 0 subs r0, 0x29 lsls r0, 24 lsrs r0, 24 cmp r0, 0x18 bhi _080810A4 ldr r1, =gUnknown_03003090 ldr r0, =0x00005432 strh r0, [r1, 0x24] _080810A4: cmp r3, 0x9 bhi _080810B0 movs r0, 0x2 movs r1, 0x5 bl sub_8080E6C _080810B0: ldr r0, =gTasks adds r1, r5, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _080810EC .pool _080810CC: ldr r0, =gUnknown_03003090 ldr r1, =0x00004523 strh r1, [r0, 0x24] movs r0, 0x1 strh r0, [r2, 0x8] b _080810EE .pool _080810E0: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0 _080810EC: strh r0, [r1, 0x8] _080810EE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8080FD0 thumb_func_start sub_80810F8 sub_80810F8: @ 80810F8 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gUnknown_020322A4 ldr r3, [r5] adds r0, r3, 0 adds r0, 0x4A ldrh r0, [r0] movs r1, 0xC0 lsls r1, 5 adds r0, r1 ldr r1, =0x0000ffff ands r0, r1 adds r1, r3, 0 adds r1, 0x9C ldrb r1, [r1] lsrs r2, r0, 8 ldr r0, =gUnknown_083399E7 adds r1, r0 ldrb r1, [r1] adds r0, r1, 0 adds r0, 0x14 cmp r2, r0 bls _0808120C adds r0, 0x14 cmp r2, r0 bcs _0808120C ldr r2, =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 _0808121A ldr r1, =0x00000123 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080811F8 bl Random lsls r0, 16 lsrs r0, 16 ldr r1, =0x0000028f bl __udivsi3 lsls r0, 24 lsrs r2, r0, 24 ldr r0, [r5] adds r0, 0x4C movs r3, 0 ldrsh r1, [r0, r3] ldr r0, =0x000001f3 cmp r1, r0 bgt _080811AC cmp r2, 0x58 bls _0808119C ldr r1, =gUnknown_03003090 ldr r0, =0x00004523 strh r0, [r1, 0x34] b _080811DE .pool _0808119C: ldr r1, =gUnknown_03003090 ldr r0, =0x00005432 strh r0, [r1, 0x34] b _080811DE .pool _080811AC: cmp r2, 0x3C bls _080811C0 ldr r1, =gUnknown_03003090 ldr r0, =0x00004523 b _080811D0 .pool _080811C0: adds r0, r2, 0 subs r0, 0x38 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080811D2 ldr r1, =gUnknown_03003090 ldr r0, =0x00005432 _080811D0: strh r0, [r1, 0x34] _080811D2: cmp r2, 0x4 bhi _080811DE movs r0, 0x3 movs r1, 0x5 bl sub_8080E6C _080811DE: ldr r0, =gTasks adds r1, r6, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _08081218 .pool _080811F8: ldr r0, =gUnknown_03003090 ldr r1, =0x00004523 strh r1, [r0, 0x34] movs r0, 0x1 strh r0, [r2, 0x8] b _0808121A .pool _0808120C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0 _08081218: strh r0, [r1, 0x8] _0808121A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80810F8 thumb_func_start sub_8081224 sub_8081224: @ 8081224 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r0, 0x4A ldrh r0, [r0] movs r1, 0x1 bl task_tutorial_oak_boy_girl lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08081270 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r2, r1, r0 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 bne _0808127E ldr r0, =gUnknown_03003090 ldr r1, =0x00004523 strh r1, [r0, 0x14] movs r0, 0x1 strh r0, [r2, 0x8] b _0808127E .pool _08081270: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0x8] _0808127E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8081224 thumb_func_start sub_8081288 sub_8081288: @ 8081288 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r7, r0, 16 mov r8, r7 lsls r1, 24 ldr r0, =gUnknown_08339B40 ldr r4, =gUnknown_083399C8 lsrs r1, 23 adds r2, r1, r4 ldrb r6, [r2] ldr r5, =gUnknown_083399C0 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, =0x00004523 cmp r7, r0 bne _08081314 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r5, =gSprites adds r0, r4, r5 movs r1, 0x2 bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, =sub_8082F9C str r0, [r4] movs r0, 0x28 bl PlaySE b _08081358 .pool _08081314: ldr r0, =0x00005432 cmp r7, r0 bne _0808133C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAnim movs r0, 0x1F bl PlaySE b _08081358 .pool _0808133C: ldr r0, =0x00002345 cmp r8, r0 bne _08081358 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim movs r0, 0x20 bl PlaySE _08081358: bl sub_8082E84 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8081288 thumb_func_start sub_8081370 sub_8081370: @ 8081370 push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 bl sub_807F738 ldr r0, =0x00004523 cmp r4, r0 beq _080813A4 cmp r4, r0 bgt _08081398 ldr r0, =0x00002345 cmp r4, r0 beq _08081474 b _080814A0 .pool _08081398: ldr r0, =0x00005432 cmp r5, r0 beq _0808143C b _080814A0 .pool _080813A4: ldr r7, =gUnknown_020322A4 ldr r4, [r7] adds r5, r4, 0 adds r5, 0x4C ldrh r6, [r5] movs r0, 0 ldrsh r1, [r5, r0] ldr r0, =0x000005db cmp r1, r0 bgt _080813E0 ldr r1, =gUnknown_08339CC3 adds r0, r4, 0 adds r0, 0x7C 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 _080814A0 .pool _080813E0: ldr r1, =gUnknown_08339CC3 adds r0, r4, 0 adds r0, 0x7C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] movs r0, 0x80 bl __divsi3 adds r0, r6, r0 strh r0, [r5] movs r1, 0x8E 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_80832BC ldr r0, [r7] movs r1, 0x8F lsls r1, 1 adds r4, r0, r1 adds r0, 0x4C 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_80832BC b _080814A0 .pool _0808143C: ldr r0, =gUnknown_020322A4 ldr r2, [r0] adds r4, r2, 0 adds r4, 0x4C ldrh r5, [r4] movs r0, 0 ldrsh r1, [r4, r0] ldr r0, =0x000005db cmp r1, r0 bgt _080814A0 ldr r1, =gUnknown_08339CC3 adds r0, r2, 0 adds r0, 0x7C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] movs r0, 0x80 lsls r0, 1 bl __divsi3 adds r0, r5, r0 b _0808149E .pool _08081474: ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r4, r0, 0 adds r4, 0x4C ldr r1, =gUnknown_08339CC3 adds r0, 0x7C 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 _080814A0 movs r0, 0x80 _0808149E: strh r0, [r4] _080814A0: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8081370 thumb_func_start sub_80814B0 sub_80814B0: @ 80814B0 push {lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _080814E4 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _080814E4 movs r0, 0xFF lsls r0, 8 ands r0, r3 cmp r0, r2 bne _080814EC movs r0, 0x1 b _080814EE .pool _080814E4: cmp r3, r1 bne _080814EC movs r0, 0x1 b _080814EE _080814EC: movs r0, 0 _080814EE: pop {r1} bx r1 thumb_func_end sub_80814B0 thumb_func_start sub_80814F4 sub_80814F4: @ 80814F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 beq _0808153C ldr r3, =gUnknown_03003110 ldrh r0, [r3, 0x4] ldr r2, =gUnknown_03003090 cmp r0, 0 beq _0808151C movs r1, 0 strh r0, [r2, 0x4] ldr r0, =0x00004444 strh r0, [r2] strh r1, [r3, 0x4] _0808151C: ldr r0, =gUnknown_03003090 ldr r3, =0x00004444 adds r1, r2, 0 adds r1, 0x10 adds r2, r0, 0 adds r2, 0x14 movs r7, 0x2 _0808152A: ldrh r0, [r2] cmp r0, 0 beq _08081532 strh r3, [r1] _08081532: adds r1, 0x10 adds r2, 0x10 subs r7, 0x1 cmp r7, 0 bge _0808152A _0808153C: movs r7, 0 ldr r1, =gUnknown_020322A4 ldr r0, [r1] adds r0, 0x7C ldrb r0, [r0] cmp r7, r0 blt _0808154C b _080816F6 _0808154C: ldr r0, =gUnknown_03003090 adds r2, r0, 0 adds r2, 0x20 str r2, [sp] movs r1, 0 mov r9, r1 movs r2, 0 str r2, [sp, 0x4] mov r8, r0 ldr r0, =0x00005432 mov r10, r0 _08081562: mov r1, r8 ldrh r0, [r1] ldr r1, =0x00004444 movs r2, 0x88 lsls r2, 7 bl sub_80814B0 cmp r0, 0 bne _08081576 b _080816D2 _08081576: ldr r6, =gUnknown_020322A4 ldr r0, [r6] adds r0, 0x96 ldr r2, [sp, 0x4] adds r0, r2 ldrh r5, [r0] mov r0, r8 ldrh r4, [r0, 0x4] ldr r1, =0x00004523 cmp r4, r1 bne _080815F4 adds r0, r1, 0 bl sub_8081370 ldr r0, [r6] movs r2, 0x8B lsls r2, 1 adds r4, r0, r2 adds r0, 0x4C movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x37 bl __divsi3 ldrh r1, [r4] adds r1, r0 strh r1, [r4] lsls r1, 16 ldr r0, =0x03e70000 cmp r1, r0 bls _080815BA movs r0, 0xFA lsls r0, 2 strh r0, [r4] _080815BA: lsls r1, r5, 24 lsrs r1, 24 ldr r0, =0x00004523 bl sub_8081288 ldr r1, [r6] movs r2, 0x92 lsls r2, 1 adds r1, r2 add r1, r9 ldrh r0, [r1] adds r0, 0x1 b _0808165E .pool _080815F4: cmp r4, r10 bne _08081632 mov r0, r10 bl sub_8081370 ldr r0, [r6] movs r1, 0x8B lsls r1, 1 adds r4, r0, r1 adds r0, 0x4C 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_8081288 ldr r1, [r6] movs r0, 0x93 lsls r0, 1 adds r1, r0 add r1, r9 ldrh r0, [r1] adds r0, 0x1 b _0808165E _08081632: ldr r0, =0x00002345 cmp r4, r0 bne _0808166A lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_8081288 adds r0, r4, 0 bl sub_8081370 ldr r0, [r6] movs r1, 0x94 lsls r1, 1 adds r0, r1 mov r2, r9 adds r1, r0, r2 ldrh r2, [r1] ldr r0, =0x000003e6 cmp r2, r0 bhi _08081660 adds r0, r2, 0x1 _0808165E: strh r0, [r1] _08081660: mov r0, r8 ldrh r1, [r0, 0x4] ldr r0, =0x00002345 cmp r1, r0 beq _08081678 _0808166A: ldr r1, [sp] ldrh r0, [r1] ldr r2, =0x00004523 cmp r0, r2 beq _08081678 cmp r0, r10 bne _080816D2 _08081678: ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r2, r0, 0 adds r2, 0x4C movs r0, 0 ldrsh r1, [r2, r0] ldr r0, =0x000005dc cmp r1, r0 ble _080816C8 adds r0, r1, 0 ldr r2, =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, =gMPlay_BGM bl m4aMPlayTempoControl b _080816D2 .pool _080816C8: ldr r0, =gMPlay_BGM movs r1, 0x80 lsls r1, 1 bl m4aMPlayTempoControl _080816D2: ldr r1, [sp] adds r1, 0x2 str r1, [sp] movs r2, 0x6 add r9, r2 ldr r0, [sp, 0x4] adds r0, 0x2 str r0, [sp, 0x4] movs r1, 0x10 add r8, r1 adds r7, 0x1 ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r0, 0x7C ldrb r0, [r0] cmp r7, r0 bge _080816F6 b _08081562 _080816F6: ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 beq _08081722 movs r7, 0 ldr r3, =gUnknown_020322A4 ldr r0, [r3] adds r0, 0x7C ldrb r0, [r0] cmp r7, r0 bge _08081722 movs r2, 0 ldr r1, =gUnknown_03003090 _08081710: strh r2, [r1] strh r2, [r1, 0x4] adds r1, 0x10 adds r7, 0x1 ldr r0, [r3] adds r0, 0x7C ldrb r0, [r0] cmp r7, r0 blt _08081710 _08081722: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80814F4 thumb_func_start sub_8081744 sub_8081744: @ 8081744 push {r4-r6,lr} movs r4, 0 movs r6, 0 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _0808175A bl GetMultiplayerId lsls r0, 24 lsrs r6, r0, 24 _0808175A: ldr r3, =gUnknown_020322A4 ldr r1, [r3] lsls r2, r6, 1 adds r0, r1, 0 adds r0, 0x96 adds r0, r2 ldrb r5, [r0] adds r1, 0x63 ldrb r0, [r1] cmp r0, 0 bne _0808182C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x2 bne _080817A8 ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080817B6 ldrh r2, [r2, 0x28] ldr r1, =0x00000201 adds r0, r1, 0 ands r0, r2 cmp r0, r1 beq _080817B6 b _080817BA .pool _080817A8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080817B6 movs r4, 0x1 _080817B6: cmp r4, 0 beq _0808182C _080817BA: ldr r4, =gUnknown_020322A4 ldr r1, [r4] lsls r2, r5, 1 adds r0, r1, 0 adds r0, 0x8E adds r0, r2 adds r1, 0x50 ldrh r0, [r0] adds r1, r0 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 adds r1, r5, 0x4 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim ldr r0, [r4] adds r0, 0x4A ldrh r0, [r0] adds r1, r6, 0 bl task_tutorial_oak_boy_girl lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08081810 ldr r1, =gUnknown_03003110 ldr r0, =0x00004523 b _08081828 .pool _08081810: cmp r0, 0x1 bne _08081824 ldr r1, =gUnknown_03003110 ldr r0, =0x00005432 b _08081828 .pool _08081824: ldr r1, =gUnknown_03003110 ldr r0, =0x00002345 _08081828: strh r0, [r1, 0x4] adds r3, r4, 0 _0808182C: ldr r1, [r3] adds r1, 0x72 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _0808185A ldr r0, [r3] adds r1, r0, 0 adds r1, 0x4C ldrh r2, [r1] movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0x80 ble _08081852 subs r0, r2, 0x1 strh r0, [r1] _08081852: ldr r0, [r3] adds r0, 0x72 movs r1, 0 strb r1, [r0] _0808185A: ldr r0, =gUnknown_020322D5 ldrb r0, [r0] cmp r0, 0 beq _0808187E ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0808187E ldr r0, [r3] ldr r1, =0x00000123 adds r2, r0, r1 ldrb r0, [r2] movs r1, 0x1 eors r0, r1 strb r0, [r2] _0808187E: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8081744 thumb_func_start sub_8081898 sub_8081898: @ 8081898 push {r4-r6,lr} bl sub_8082D28 ldr r4, =gUnknown_020322A4 ldr r0, [r4] movs r1, 0x82 lsls r1, 1 adds r2, r0, r1 ldr r1, [r2] ldr r0, =0x00057e03 cmp r1, r0 bhi _080818B4 adds r0, r1, 0x1 str r0, [r2] _080818B4: bl sub_8081744 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x4C ldrh r0, [r0] movs r5, 0x8B lsls r5, 1 adds r1, r5 ldrh r1, [r1] bl sub_800A994 bl sub_80814F4 ldr r0, [r4] adds r0, r5 ldrh r0, [r0] movs r6, 0xFA lsls r6, 2 adds r1, r6, 0 bl sub_8083140 ldr r0, [r4] adds r0, 0x4C ldrh r0, [r0] bl sub_8083230 bl sub_808330C bl sub_8082AD4 ldr r2, [r4] adds r3, r2, 0 adds r3, 0x63 ldrb r0, [r3] cmp r0, 0 bne _0808191A movs r1, 0x8C lsls r1, 1 adds r0, r2, r1 ldrh r1, [r0] ldr r0, =0x000003e7 cmp r1, r0 bls _0808191A adds r0, r2, r5 strh r6, [r0] movs r0, 0x1 strb r0, [r3] ldr r0, =sub_8081FC8 bl SetMainCallback2 _0808191A: ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r2, 0x8E lsls r2, 1 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0x8F lsls r2, 1 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8081898 thumb_func_start nullsub_31 nullsub_31: @ 8081960 bx lr thumb_func_end nullsub_31 thumb_func_start help_system_is_not_first_time help_system_is_not_first_time: @ 8081964 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 _080819A2 adds r0, r4, 0x2 adds r1, r5, 0x2 bl StringCompare cmp r0, 0 bne _080819B0 ldr r0, [r4, 0x8] ldr r2, =0xffffff00 ands r0, r2 ldr r1, [r5, 0x8] ands r1, r2 cmp r0, r1 bne _080819B0 ldr r0, [r4, 0xC] ldr r2, =0x00ffffff ands r0, r2 ldr r1, [r5, 0xC] ands r1, r2 cmp r0, r1 bne _080819B0 _080819A2: movs r0, 0x1 b _080819B2 .pool _080819B0: movs r0, 0 _080819B2: pop {r4,r5} pop {r1} bx r1 thumb_func_end help_system_is_not_first_time thumb_func_start sub_80819B8 sub_80819B8: @ 80819B8 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 _080819D4: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 subs r4, 0x1 cmp r4, 0 bge _080819D4 movs r6, 0 mov r1, sp movs r4, 0x4 _080819E8: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bne _080819F2 adds r6, 0x1 _080819F2: adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _080819E8 cmp r6, 0x5 beq _08081A46 cmp r3, 0x3 bhi _08081A46 movs r4, 0 ldr r3, [sp, 0x10] cmp r4, r3 bge _08081A5E mov r3, r10 _08081A0C: movs r6, 0 ldr r7, [sp, 0x10] cmp r6, r7 bge _08081A54 mov r9, r3 mov r5, r10 lsls r0, r4, 24 mov r8, r0 _08081A1C: mov r1, r9 ldrh r0, [r1] ldrh r2, [r5] cmp r0, r2 bne _08081A4A cmp r4, r6 beq _08081A4A cmp r0, 0xAF bne _08081A46 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 _08081A4A _08081A46: movs r0, 0xC b _08081B9E _08081A4A: adds r5, 0x10 adds r6, 0x1 ldr r0, [sp, 0x10] cmp r6, r0 blt _08081A1C _08081A54: adds r3, 0x10 adds r4, 0x1 ldr r1, [sp, 0x10] cmp r4, r1 blt _08081A0C _08081A5E: movs r2, 0 mov r1, sp movs r4, 0x4 _08081A64: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _08081A72 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _08081A72: adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _08081A64 cmp r2, 0x3 bls _08081A82 movs r0, 0xD b _08081B9E _08081A82: cmp r2, 0x3 bne _08081A8A movs r0, 0xB b _08081B9E _08081A8A: movs r4, 0 mov r1, sp _08081A8E: movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0x32 ble _08081A98 b _08081B98 _08081A98: adds r1, 0x2 adds r4, 0x1 cmp r4, 0x4 ble _08081A8E cmp r2, 0x1 bne _08081AEA mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _08081AB2 movs r0, 0x1 b _08081B9E _08081AB2: mov r0, sp ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 ble _08081AC0 movs r0, 0x2 b _08081B9E _08081AC0: mov r0, sp movs r3, 0x4 ldrsh r0, [r0, r3] cmp r0, 0 ble _08081ACE movs r0, 0x3 b _08081B9E _08081ACE: mov r0, sp movs r4, 0x6 ldrsh r0, [r0, r4] cmp r0, 0 ble _08081ADC movs r0, 0x4 b _08081B9E _08081ADC: mov r0, sp movs r7, 0x8 ldrsh r0, [r0, r7] cmp r0, 0 ble _08081AEA movs r0, 0x5 b _08081B9E _08081AEA: cmp r2, 0x2 bne _08081B9C movs r4, 0 ldr r5, =gUnknown_03000DF8 mov r1, sp adds r2, r5, 0 _08081AF6: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _08081B02 strh r4, [r2] adds r2, 0x2 _08081B02: adds r1, 0x2 adds r4, 0x1 cmp r4, 0x4 ble _08081AF6 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 _08081B58 adds r0, r3, 0 cmp r0, 0 bne _08081B38 lsls r0, r2, 16 b _08081B62 .pool _08081B38: cmp r0, 0x1 bne _08081B40 lsls r0, r2, 16 b _08081B6E _08081B40: cmp r0, 0x2 bne _08081B48 lsls r0, r2, 16 b _08081B7A _08081B48: cmp r0, 0x3 bne _08081B50 lsls r0, r2, 16 b _08081B86 _08081B50: cmp r0, 0x4 bne _08081B9C lsls r0, r2, 16 b _08081B92 _08081B58: movs r2, 0x2 ldrsh r0, [r5, r2] cmp r0, 0 bne _08081B68 lsls r0, r3, 16 _08081B62: movs r1, 0x6 orrs r0, r1 b _08081B9E _08081B68: cmp r0, 0x1 bne _08081B74 lsls r0, r3, 16 _08081B6E: movs r1, 0x7 orrs r0, r1 b _08081B9E _08081B74: cmp r0, 0x2 bne _08081B80 lsls r0, r3, 16 _08081B7A: movs r1, 0x8 orrs r0, r1 b _08081B9E _08081B80: cmp r0, 0x3 bne _08081B8C lsls r0, r3, 16 _08081B86: movs r1, 0x9 orrs r0, r1 b _08081B9E _08081B8C: cmp r0, 0x4 bne _08081B9C lsls r0, r3, 16 _08081B92: movs r1, 0xA orrs r0, r1 b _08081B9E _08081B98: movs r0, 0xE b _08081B9E _08081B9C: movs r0, 0 _08081B9E: 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_80819B8 thumb_func_start sub_8081BB0 sub_8081BB0: @ 8081BB0 ldr r1, =gUnknown_03000E04 strh r0, [r1] bx lr .pool thumb_func_end sub_8081BB0 thumb_func_start sub_8081BBC sub_8081BBC: @ 8081BBC ldr r0, =gUnknown_03000E04 movs r1, 0 ldrsh r0, [r0, r1] bx lr .pool thumb_func_end sub_8081BBC thumb_func_start sub_8081BC8 sub_8081BC8: @ 8081BC8 ldr r1, =gUnknown_03000E06 strh r0, [r1] bx lr .pool thumb_func_end sub_8081BC8 thumb_func_start sub_8081BD4 sub_8081BD4: @ 8081BD4 ldr r0, =gUnknown_03000E06 movs r1, 0 ldrsh r0, [r0, r1] bx lr .pool thumb_func_end sub_8081BD4 thumb_func_start sub_8081BE0 sub_8081BE0: @ 8081BE0 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, =gUnknown_03000DE8 adds r2, r7, 0 movs r1, 0 adds r0, r7, 0 adds r0, 0xA _08081C0A: strh r1, [r0] subs r0, 0x2 cmp r0, r2 bge _08081C0A movs r6, 0 cmp r6, r9 bge _08081C40 ldr r0, =gUnknown_03000DE8 mov r12, r0 ldr r5, [sp] adds r5, 0x9 _08081C20: movs r3, 0 adds r4, r5, 0 mov r2, r12 _08081C26: 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 _08081C26 adds r5, 0x10 adds r6, 0x1 cmp r6, r9 blt _08081C20 _08081C40: 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 _08081C6A: movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0 bge _08081C76 strh r2, [r1] adds r3, 0x1 _08081C76: adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _08081C6A lsls r0, r3, 24 lsrs r0, 24 mov r10, r0 movs r4, 0 ldr r1, =gUnknown_03000DE8 movs r6, 0x4 _08081C8A: ldrh r2, [r1] movs r5, 0 ldrsh r0, [r1, r5] cmp r0, 0 ble _08081CA4 cmp r0, r3 bge _08081CA0 strh r4, [r1] b _08081CA4 .pool _08081CA0: subs r0, r2, r3 strh r0, [r1] _08081CA4: adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _08081C8A ldr r1, =gUnknown_03000DE8 ldr r2, =gUnknown_020322A8 movs r6, 0x4 _08081CB2: movs r3, 0 ldrsh r0, [r1, r3] stm r2!, {r0} adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _08081CB2 ldr r1, =0x0000014d ldr r0, [sp, 0x8] bl __udivsi3 lsls r0, 16 lsrs r0, 16 adds r3, r0, 0 adds r3, 0x64 ldr r4, =gUnknown_020322D0 str r3, [r4] movs r6, 0x4 _08081CD6: 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 _08081D02 adds r5, 0x1 _08081D02: strh r5, [r7] adds r7, 0x2 subs r6, 0x1 cmp r6, 0 bge _08081CD6 ldr r1, =gUnknown_03000DE8 ldr r2, =gUnknown_020322BC movs r6, 0x4 _08081D12: movs r3, 0 ldrsh r0, [r1, r3] stm r2!, {r0} adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _08081D12 ldr r4, =gUnknown_03000DE8 ldr r0, [sp] adds r1, r4, 0 mov r2, r9 mov r3, r10 bl sub_80819B8 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 _08081D4C movs r0, 0 strh r0, [r4, 0xA] _08081D4C: mov r5, r8 ldrb r0, [r5] cmp r0, 0xC bne _08081DA6 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, =gUnknown_08339CC8 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0 movs r4, 0x1 movs r3, 0x2 _08081D74: adds r2, r0, 0 asrs r2, r6 ands r2, r4 cmp r2, 0 beq _08081D9C strh r3, [r1] b _08081D9E .pool _08081D9C: strh r2, [r1] _08081D9E: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x4 ble _08081D74 _08081DA6: ldr r7, =gUnknown_03000DE8 movs r2, 0xFF adds r1, r7, 0 movs r6, 0x5 _08081DAE: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0xFF ble _08081DB8 strh r2, [r1] _08081DB8: adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _08081DAE 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 _08081DDE: ldr r5, [sp, 0x4] adds r1, r5, r6 ldrh r0, [r2] strb r0, [r1] adds r2, 0x2 adds r6, 0x1 cmp r6, 0x5 ble _08081DDE add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8081BE0 thumb_func_start sub_8081E04 sub_8081E04: @ 8081E04 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_8081BE0 add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8081E04 thumb_func_start sub_8081E20 sub_8081E20: @ 8081E20 push {r4-r6,lr} ldr r0, =gUnknown_020322A4 ldr r0, [r0] movs r2, 0x82 lsls r2, 1 adds r1, r0, r2 ldrh r1, [r1] adds r0, 0x4E ldrh r4, [r0] movs r2, 0 ldr r5, =0x00000383 cmp r1, r5 bhi _08081E48 movs r2, 0x5 b _08081E9A .pool _08081E48: ldr r3, =0xfffffc7c adds r0, r1, r3 lsls r0, 16 lsrs r0, 16 ldr r3, =0x00000257 cmp r0, r3 bhi _08081E64 movs r2, 0x4 b _08081E9A .pool _08081E64: ldr r6, =0xfffffa24 adds r0, r1, r6 lsls r0, 16 lsrs r0, 16 cmp r0, r3 bhi _08081E78 movs r2, 0x3 b _08081E9A .pool _08081E78: ldr r3, =0xfffff7cc adds r0, r1, r3 lsls r0, 16 lsrs r0, 16 cmp r0, r5 bhi _08081E8C movs r2, 0x2 b _08081E9A .pool _08081E8C: ldr r6, =0xfffff31c adds r0, r1, r6 lsls r0, 16 ldr r1, =0x012b0000 cmp r0, r1 bhi _08081E9A movs r2, 0x1 _08081E9A: lsls r0, r2, 16 asrs r0, 16 bl sub_8081BC8 movs r2, 0 cmp r4, 0x40 bhi _08081F7C adds r0, r4, 0 subs r0, 0x32 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081EC4 ldr r2, =0x0000ffff b _08081F7C .pool _08081EC4: adds r0, r4, 0 subs r0, 0x64 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081ED8 ldr r2, =0x0000fffe b _08081F7C .pool _08081ED8: adds r0, r4, 0 subs r0, 0x96 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081EEC ldr r2, =0x0000fffd b _08081F7C .pool _08081EEC: adds r0, r4, 0 subs r0, 0xC8 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081F00 ldr r2, =0x0000fffc b _08081F7C .pool _08081F00: adds r0, r4, 0 subs r0, 0xFA lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081F14 ldr r2, =0x0000fffb b _08081F7C .pool _08081F14: ldr r1, =0xfffffea2 adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081F2C ldr r2, =0x0000fffa b _08081F7C .pool _08081F2C: ldr r3, =0xfffffe70 adds r0, r4, r3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081F44 ldr r2, =0x0000fff9 b _08081F7C .pool _08081F44: ldr r6, =0xfffffe0c adds r0, r4, r6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081F5C ldr r2, =0x0000fff8 b _08081F7C .pool _08081F5C: ldr r1, =0xfffffdda adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bhi _08081F74 ldr r2, =0x0000fff7 b _08081F7C .pool _08081F74: ldr r0, =0x00000257 cmp r4, r0 bls _08081F7C ldr r2, =0x0000fff6 _08081F7C: lsls r0, r2, 16 asrs r0, 16 bl sub_8081BB0 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8081E20 thumb_func_start sub_8081F94 sub_8081F94: @ 8081F94 push {lr} adds r1, r0, 0 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _08081FB8 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08081FB8 movs r2, 0xBC lsls r2, 6 b _08081FBA .pool _08081FB8: ldr r2, =0x00002fff _08081FBA: adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8081F94 thumb_func_start sub_8081FC8 sub_8081FC8: @ 8081FC8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, =gUnknown_020322A4 ldr r0, [r4] adds r0, 0x63 ldrb r0, [r0] cmp r0, 0x2 bhi _08081FDE bl sub_8082D28 _08081FDE: bl GetMultiplayerId ldr r0, [r4] adds r0, 0x63 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0xC bls _08081FF0 b _0808249E _08081FF0: lsls r0, 2 ldr r1, =_08082004 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08082004: .4byte _08082038 .4byte _08082078 .4byte _080820D4 .4byte _080821C8 .4byte _08082278 .4byte _08082286 .4byte _080822B0 .4byte _08082458 .4byte _080822E4 .4byte _08082308 .4byte _080823B0 .4byte _08082430 .4byte _0808246C _08082038: ldr r0, =gMPlay_BGM movs r1, 0x80 lsls r1, 1 bl m4aMPlayTempoControl movs r4, 0 b _08082064 .pool _0808204C: ldr r0, =gUnknown_020322A4 ldr r0, [r0] movs r1, 0x90 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 _08082064: ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r4, r0 bcc _0808204C b _08082458 .pool _08082078: ldr r4, =gUnknown_020322A4 ldr r1, [r4] adds r1, 0x4C ldrh r0, [r1] subs r0, 0x20 strh r0, [r1] lsls r0, 16 cmp r0, 0 bgt _080820C6 bl sub_8009F8C ldr r2, [r4] adds r1, r2, 0 adds r1, 0x4C movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _080820B0 adds r1, 0x17 ldrb r0, [r1] adds r0, 0x1 b _080820B6 .pool _080820B0: adds r1, r2, 0 adds r1, 0x63 movs r0, 0x5 _080820B6: strb r0, [r1] ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r0, 0 strb r0, [r1] ldr r0, =gMPlay_SE2 bl m4aMPlayStop _080820C6: bl sub_807F738 b _0808249E .pool _080820D4: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 beq _080820E0 b _08082458 _080820E0: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _080820EC b _0808249E _080820EC: ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _0808218C ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _0808218C ldr r3, =gUnknown_020322A4 ldr r1, [r3] movs r4, 0x8E lsls r4, 5 adds r2, r1, r4 movs r5, 0x82 lsls r5, 1 adds r0, r1, r5 ldr r0, [r0] str r0, [r2] adds r0, r1, 0 adds r0, 0x4E ldrh r0, [r0] ldr r2, =0x000011c4 adds r1, r2 strh r0, [r1] movs r4, 0 mov r8, r3 mov r12, r8 ldr r7, =0x000011c8 movs r6, 0x92 lsls r6, 1 _08082128: movs r3, 0 adds r5, r4, 0x1 lsls r0, r4, 1 adds r0, r4 lsls r4, r0, 1 _08082132: mov r1, r12 ldr r0, [r1] lsls r1, r3, 1 adds r1, r4 adds r2, r0, r7 adds r2, r1 adds r0, r6 adds r0, r1 ldrh r0, [r0] strh r0, [r2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _08082132 lsls r0, r5, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08082128 mov r2, r8 ldr r1, [r2] movs r4, 0x8E lsls r4, 5 adds r1, r4 movs r0, 0 movs r2, 0x20 bl link_0800A448 lsls r0, 24 cmp r0, 0 bne _08082172 b _0808249E _08082172: mov r5, r8 ldr r1, [r5] b _0808245C .pool _0808218C: ldr r4, =gUnknown_020322A4 ldr r3, [r4] movs r0, 0xCC lsls r0, 1 adds r1, r3, r0 movs r2, 0x82 lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] str r0, [r1] adds r0, r3, 0 adds r0, 0x4E ldrh r2, [r0] movs r5, 0xCE lsls r5, 1 adds r0, r3, r5 strh r2, [r0] movs r0, 0 movs r2, 0x28 bl link_0800A448 lsls r0, 24 cmp r0, 0 bne _080821BE b _0808249E _080821BE: ldr r1, [r4] b _0808245C .pool _080821C8: bl sub_800A550 lsls r0, 24 cmp r0, 0 bne _080821D4 b _0808249E _080821D4: bl sub_800A5B4 ldr r5, =gUnknown_020322A4 ldr r1, [r5] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _08082254 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08082254 ldr r2, =gUnknown_020223C4 ldr r3, [r5] ldrh r0, [r2, 0x4] adds r1, r3, 0 adds r1, 0x4E strh r0, [r1] movs r0, 0x82 lsls r0, 1 adds r1, r3, r0 ldr r0, [r2] str r0, [r1] movs r4, 0 adds r7, r2, 0 adds r7, 0x8 adds r6, r5, 0 movs r2, 0x92 lsls r2, 1 _08082216: movs r3, 0 adds r5, r4, 0x1 lsls r0, r4, 1 adds r0, r4 lsls r4, r0, 1 _08082220: ldr r1, [r6] lsls r0, r3, 1 adds r0, r4 adds r1, r2 adds r1, r0 adds r0, r7, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _08082220 lsls r0, r5, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08082216 b _0808249E .pool _08082254: ldr r2, =gUnknown_020223C4 ldr r0, =gUnknown_020322A4 ldr r3, [r0] ldrh r0, [r2, 0x4] adds r1, r3, 0 adds r1, 0x4E strh r0, [r1] movs r4, 0x82 lsls r4, 1 adds r1, r3, r4 ldr r0, [r2] str r0, [r1] b _0808249E .pool _08082278: bl sub_8083B08 lsls r0, 24 cmp r0, 0 bne _08082284 b _0808249E _08082284: b _08082458 _08082286: bl berry_blender_related lsls r0, 24 cmp r0, 0 bne _08082292 b _0808249E _08082292: ldr r0, =gUnknown_03005D98 ldrb r0, [r0] cmp r0, 0 bne _080822A8 movs r0, 0x22 bl IncrementGameStat b _08082458 .pool _080822A8: movs r0, 0x21 bl IncrementGameStat b _08082458 _080822B0: ldr r6, =gUnknown_020322A4 ldr r4, [r6] ldr r5, =0x000011b8 adds r4, r5 ldr r5, =gUnknown_08339831 bl sav2_get_text_speed adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_808417C cmp r0, 0 bne _080822D2 b _0808249E _080822D2: ldr r1, [r6] b _0808245C .pool _080822E4: ldr r4, =gUnknown_020322A4 ldr r0, [r4] adds r0, 0x9E movs r1, 0 strb r1, [r0] ldr r0, =gUnknown_083399B8 movs r1, 0x1 movs r2, 0xD movs r3, 0 bl CreateYesNoMenu ldr r1, [r4] b _0808245C .pool _08082308: bl sub_8198C58 lsls r0, 24 asrs r2, r0, 24 cmp r2, 0 beq _0808236C cmp r2, 0 bgt _08082322 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08082328 b _0808249E _08082322: cmp r2, 0x1 beq _08082328 b _0808249E _08082328: ldr r2, =gUnknown_020322A4 ldr r0, [r2] adds r0, 0x9E movs r1, 0x1 strb r1, [r0] ldr r1, [r2] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r4, 0 _0808233E: ldr r0, =gUnknown_020322A4 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x8E adds r0, r1 ldrh r0, [r0] cmp r0, 0xFF beq _0808235C adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram _0808235C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0808233E b _0808249E .pool _0808236C: ldr r1, =gUnknown_020322A4 ldr r0, [r1] adds r0, 0x9E strb r2, [r0] ldr r1, [r1] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r4, 0 _08082380: ldr r0, =gUnknown_020322A4 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x8E adds r0, r1 ldrh r0, [r0] cmp r0, 0xFF beq _0808239E adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram _0808239E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08082380 b _0808249E .pool _080823B0: ldr r6, =gUnknown_03003110 adds r0, r6, 0 bl sub_8081F94 ldr r4, =gUnknown_020322A4 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x9E ldrb r5, [r0] cmp r5, 0 bne _0808241C movs r0, 0x4 bl IsBagPocketNonEmpty lsls r0, 24 cmp r0, 0 bne _080823EC ldr r0, [r4] adds r0, 0x70 movs r1, 0x2 strh r1, [r0] ldr r0, =0x00009999 b _08082414 .pool _080823EC: bl sub_8136EF4 lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0808240C ldr r0, [r4] adds r0, 0x70 movs r1, 0x3 strh r1, [r0] ldr r0, =0x0000aaaa b _08082414 .pool _0808240C: ldr r0, [r4] adds r0, 0x70 strh r5, [r0] ldr r0, =0x00007779 _08082414: strh r0, [r6, 0x2] b _08082458 .pool _0808241C: adds r1, r2, 0 adds r1, 0x70 movs r0, 0x1 strh r0, [r1] ldr r0, =0x00008888 strh r0, [r6, 0x2] subs r1, 0xD b _0808245E .pool _08082430: ldr r0, =gUnknown_03005D98 ldrb r0, [r0] cmp r0, 0 beq _08082458 ldr r0, =sub_8082924 bl SetMainCallback2 ldr r2, =gUnknown_020322A4 ldr r0, [r2] adds r0, 0x63 movs r1, 0 strb r1, [r0] ldr r0, [r2] b _0808249C .pool _08082458: ldr r0, =gUnknown_020322A4 ldr r1, [r0] _0808245C: adds r1, 0x63 _0808245E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0808249E .pool _0808246C: ldr r6, =gUnknown_020322A4 ldr r4, [r6] ldr r0, =0x000011b8 adds r4, r0 ldr r5, =gUnknown_0833981A bl sav2_get_text_speed adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_808417C cmp r0, 0 beq _0808249E ldr r0, =sub_8082644 bl SetMainCallback2 ldr r0, [r6] adds r0, 0x63 movs r1, 0 strb r1, [r0] ldr r0, [r6] _0808249C: strb r1, [r0] _0808249E: bl sub_808330C ldr r4, =gUnknown_020322A4 ldr r0, [r4] adds r0, 0x4C ldrh r0, [r0] bl sub_8083230 bl sub_8082AD4 ldr r1, [r4] movs r2, 0x8E lsls r2, 1 adds r0, r1, r2 movs r4, 0 ldrsh r0, [r0, r4] movs r5, 0x8F lsls r5, 1 adds r1, r5 movs r2, 0 ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8081FC8 thumb_func_start sub_80824FC sub_80824FC: @ 80824FC push {r4,lr} ldr r1, =gUnknown_020322A4 ldr r0, [r1] movs r2, 0xD0 lsls r2, 1 adds r0, r2 ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _08082512 b _0808263C _08082512: lsls r0, 2 ldr r1, =_08082524 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08082524: .4byte _08082540 .4byte _08082558 .4byte _08082584 .4byte _08082594 .4byte _080825BA .4byte _08082600 .4byte _0808261A _08082540: bl sub_800ADF8 ldr r0, =gUnknown_020322A4 ldr r2, [r0] movs r3, 0xD0 lsls r3, 1 adds r1, r2, r3 movs r0, 0x1 b _0808260C .pool _08082558: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0808263C ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r2, 0xD0 lsls r2, 1 adds r1, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r1, =gSoftResetDisabled movs r0, 0x1 strb r0, [r1] b _0808263C .pool _08082584: bl sub_8153430 ldr r0, =gUnknown_020322A4 ldr r2, [r0] b _08082602 .pool _08082594: ldr r1, [r4] movs r2, 0x84 lsls r2, 1 adds r1, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0xA bne _0808263C bl sub_800ADF8 ldr r1, [r4] movs r3, 0xD0 lsls r3, 1 adds r1, r3 ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _0808263C _080825BA: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0808263C bl sub_8153474 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080825E4 ldr r0, =gUnknown_020322A4 ldr r0, [r0] movs r1, 0xD0 lsls r1, 1 adds r0, r1 movs r1, 0x5 str r1, [r0] b _0808263C .pool _080825E4: ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r3, 0x84 lsls r3, 1 adds r0, r1, r3 str r2, [r0] movs r0, 0xD0 lsls r0, 1 adds r1, r0 movs r0, 0x3 str r0, [r1] b _0808263C .pool _08082600: ldr r2, [r4] _08082602: movs r3, 0xD0 lsls r3, 1 adds r1, r2, r3 ldr r0, [r1] adds r0, 0x1 _0808260C: str r0, [r1] movs r0, 0x84 lsls r0, 1 adds r1, r2, r0 movs r0, 0 str r0, [r1] b _0808263C _0808261A: ldr r1, [r4] movs r2, 0x84 lsls r2, 1 adds r1, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x5 ble _0808263C ldr r1, =gSoftResetDisabled movs r0, 0 strb r0, [r1] movs r0, 0x1 b _0808263E .pool _0808263C: movs r0, 0 _0808263E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80824FC thumb_func_start sub_8082644 sub_8082644: @ 8082644 push {r4-r6,lr} sub sp, 0x4 ldr r1, =gUnknown_020322A4 ldr r0, [r1] adds r0, 0x63 ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0xC bls _08082658 b _080828DC _08082658: lsls r0, 2 ldr r1, =_0808266C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0808266C: .4byte _080826A0 .4byte _080826EC .4byte _0808271C .4byte _08082754 .4byte _0808278C .4byte _080827AA .4byte _080827C8 .4byte _080827FC .4byte _08082818 .4byte _08082828 .4byte _0808284C .4byte _080828A4 .4byte _080828C6 _080826A0: ldr r1, [r6] adds r0, r1, 0 adds r0, 0x64 ldrh r2, [r0] ldr r0, =0x00002222 cmp r2, r0 bne _080826B0 b _080827A2 _080826B0: ldr r0, =0x00001111 cmp r2, r0 beq _080826B8 b _080828DC _080826B8: adds r0, r1, 0 adds r0, 0x6C ldrh r2, [r0] ldr r0, =0x00009999 cmp r2, r0 bne _080826D8 adds r1, 0x63 movs r0, 0x2 strb r0, [r1] b _080828DC .pool _080826D8: ldr r0, =0x0000aaaa cmp r2, r0 bne _080827A2 adds r1, 0x63 movs r0, 0x1 strb r0, [r1] b _080828DC .pool _080826EC: ldr r0, [r6] adds r0, 0x63 movs r1, 0x3 strb r1, [r0] ldr r4, =gStringVar4 ldr r0, [r6] adds r0, 0x6E ldrh r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, =gLinkPlayers + 8 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r1, =gUnknown_083398DD b _08082740 .pool _0808271C: ldr r1, [r6] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r4, =gStringVar4 ldr r0, [r6] adds r0, 0x6E ldrh r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, =gLinkPlayers + 8 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r1, =gUnknown_083398B0 _08082740: adds r0, r4, 0 bl StringAppend b _080828DC .pool _08082754: ldr r4, [r6] ldr r0, =0x000011b8 adds r4, r0 ldr r5, =gStringVar4 bl sav2_get_text_speed adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_808417C cmp r0, 0 bne _08082774 b _080828DC _08082774: ldr r1, [r6] movs r0, 0x84 lsls r0, 1 adds r2, r1, r0 movs r0, 0 str r0, [r2] b _080828BC .pool _0808278C: ldr r4, [r6] movs r2, 0x84 lsls r2, 1 adds r1, r4, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x3C bgt _080827A0 b _080828DC _080827A0: adds r1, r4, 0 _080827A2: adds r1, 0x63 movs r0, 0x5 strb r0, [r1] b _080828DC _080827AA: ldr r0, [r6] ldr r1, =0x000011b8 adds r0, r1 ldr r1, =gText_SavingDontTurnOff2 movs r2, 0 bl sub_808417C bl sub_800ADF8 b _080828BA .pool _080827C8: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _080827D4 b _080828DC _080827D4: ldr r3, =gUnknown_020322A4 ldr r1, [r3] movs r2, 0x84 lsls r2, 1 adds r0, r1, r2 movs r2, 0 str r2, [r0] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r3] movs r1, 0xD0 lsls r1, 1 adds r0, r1 str r2, [r0] b _080828DC .pool _080827FC: bl sub_80824FC lsls r0, 24 cmp r0, 0 beq _080828DC movs r0, 0x37 bl PlaySE ldr r0, =gUnknown_020322A4 ldr r1, [r0] b _080828BC .pool _08082818: ldr r1, [r6] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_800ADF8 b _080828DC _08082828: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080828DC movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gUnknown_020322A4 ldr r1, [r0] b _080828BC .pool _0808284C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080828DC ldr r2, [r6] adds r0, r2, 0 adds r0, 0x64 ldrh r1, [r0] ldr r0, =0x00002222 cmp r1, r0 bne _08082898 bl FreeAllWindowBuffers movs r0, 0x2 bl UnsetBgTilemapBuffer movs r0, 0x1 bl UnsetBgTilemapBuffer ldr r0, [r6] bl Free str r4, [r6] ldr r0, =sub_807FA80 bl SetMainCallback2 b _080828DC .pool _08082898: movs r1, 0x84 lsls r1, 1 adds r0, r2, r1 str r4, [r0] adds r1, r2, 0 b _080828BC _080828A4: ldr r1, [r6] movs r2, 0x84 lsls r2, 1 adds r1, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x1E ble _080828DC bl sub_800AC34 _080828BA: ldr r1, [r6] _080828BC: adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080828DC _080828C6: ldr r0, =gUnknown_03003124 ldrb r4, [r0] cmp r4, 0 bne _080828DC ldr r0, [r6] bl Free str r4, [r6] ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 _080828DC: bl sub_8082AD4 ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r2, 0x8E lsls r2, 1 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0x8F lsls r2, 1 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8082644 thumb_func_start sub_8082924 sub_8082924: @ 8082924 push {r4-r6,lr} ldr r1, =gUnknown_020322A4 ldr r0, [r1] adds r0, 0x63 ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0xA bls _08082936 b _08082A92 _08082936: lsls r0, 2 ldr r1, =_08082948 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08082948: .4byte _08082974 .4byte _080829AA .4byte _080829D4 .4byte _08082A00 .4byte _08082A92 .4byte _08082A92 .4byte _08082A92 .4byte _08082A92 .4byte _08082A92 .4byte _08082A30 .4byte _08082A48 _08082974: ldr r1, [r6] adds r0, r1, 0 adds r0, 0x70 ldrh r0, [r0] cmp r0, 0x1 bhi _08082986 adds r1, 0x63 movs r0, 0x9 strb r0, [r1] _08082986: ldr r2, [r6] adds r0, r2, 0 adds r0, 0x70 ldrh r1, [r0] cmp r1, 0x2 bne _08082996 subs r0, 0xD strb r1, [r0] _08082996: ldr r1, [r6] adds r0, r1, 0 adds r0, 0x70 ldrh r0, [r0] cmp r0, 0x3 bne _08082A92 adds r1, 0x63 movs r0, 0x1 strb r0, [r1] b _08082A92 _080829AA: ldr r0, [r6] adds r0, 0x63 movs r2, 0 movs r1, 0x3 strb r1, [r0] ldr r0, [r6] ldr r1, =0x000011b8 adds r0, r1 strh r2, [r0] ldr r0, =gStringVar4 ldr r1, =gUnknown_08339896 bl StringCopy b _08082A92 .pool _080829D4: ldr r1, [r6] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, [r6] ldr r1, =0x000011b8 adds r0, r1 strh r2, [r0] ldr r0, =gStringVar4 ldr r1, =gUnknown_08339858 bl StringCopy b _08082A92 .pool _08082A00: ldr r4, [r6] ldr r2, =0x000011b8 adds r4, r2 ldr r5, =gStringVar4 bl sav2_get_text_speed adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_808417C cmp r0, 0 beq _08082A92 ldr r0, [r6] adds r0, 0x63 movs r1, 0x9 strb r1, [r0] b _08082A92 .pool _08082A30: movs r0, 0x3 bl BeginFastPaletteFade ldr r0, =gUnknown_020322A4 ldr r1, [r0] adds r1, 0x63 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08082A92 .pool _08082A48: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08082A92 ldr r0, [r6] adds r0, 0x70 ldrh r0, [r0] cmp r0, 0 bne _08082A70 ldr r0, =sub_807FA80 bl SetMainCallback2 b _08082A76 .pool _08082A70: ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 _08082A76: bl FreeAllWindowBuffers movs r0, 0x2 bl UnsetBgTilemapBuffer movs r0, 0x1 bl UnsetBgTilemapBuffer ldr r4, =gUnknown_020322A4 ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] _08082A92: bl sub_8082AD4 ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r2, 0x8E lsls r2, 1 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0x8F lsls r2, 1 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8082924 thumb_func_start sub_8082AD4 sub_8082AD4: @ 8082AD4 push {r4-r7,lr} ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08082AE0 b _08082CA4 _08082AE0: ldr r4, =gUnknown_03003090 ldrh r0, [r4] ldr r1, =0x00002fff movs r2, 0xBC lsls r2, 6 bl sub_80814B0 cmp r0, 0 beq _08082B66 ldrh r1, [r4, 0x2] ldr r0, =0x00001111 cmp r1, r0 bne _08082B58 ldrh r3, [r4, 0x4] ldr r0, =0x00009999 cmp r3, r0 beq _08082B38 cmp r3, r0 bgt _08082B24 ldr r0, =0x00008888 b _08082B26 .pool _08082B24: ldr r0, =0x0000aaaa _08082B26: cmp r3, r0 beq _08082B38 ldr r2, =gUnknown_020322A4 b _08082B48 .pool _08082B38: ldr r2, =gUnknown_020322A4 ldr r0, [r2] adds r1, r0, 0 adds r1, 0x6C strh r3, [r1] ldrh r1, [r4, 0x6] adds r0, 0x6E strh r1, [r0] _08082B48: ldr r0, [r2] adds r0, 0x64 ldr r1, =0x00001111 b _08082B64 .pool _08082B58: ldr r0, =0x00002222 cmp r1, r0 bne _08082B66 ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r0, 0x64 _08082B64: strh r1, [r0] _08082B66: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 beq _08082B72 b _08082CA4 _08082B72: ldr r2, =gUnknown_020322A4 ldr r0, [r2] adds r0, 0x64 ldrh r1, [r0] ldr r0, =0x00001111 cmp r1, r0 bne _08082B82 b _08082CA4 _08082B82: ldr r0, =0x00002222 cmp r1, r0 bne _08082B8A b _08082CA4 _08082B8A: movs r5, 0 adds r7, r2, 0 b _08082BF4 .pool _08082B9C: ldr r6, =gUnknown_03003090 lsls r4, r5, 4 adds r0, r4, r6 ldrh r0, [r0] ldr r1, =0x00002fff movs r2, 0xBC lsls r2, 6 bl sub_80814B0 cmp r0, 0 beq _08082BEE adds r0, r6, 0x2 adds r0, r4, r0 ldrh r2, [r0] ldr r0, =0x00008888 cmp r2, r0 beq _08082BE4 cmp r2, r0 bgt _08082BD8 ldr r0, =0x00007779 b _08082BE0 .pool _08082BD8: ldr r0, =0x00009999 cmp r2, r0 beq _08082BE4 ldr r0, =0x0000aaaa _08082BE0: cmp r2, r0 bne _08082BEE _08082BE4: ldr r0, [r7] lsls r1, r5, 1 adds r0, 0x64 adds r0, r1 strh r2, [r0] _08082BEE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08082BF4: bl sub_8009FCC lsls r0, 24 lsrs r0, 24 cmp r5, r0 bcc _08082B9C movs r5, 0 b _08082C12 .pool _08082C0C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08082C12: bl sub_8009FCC lsls r0, 24 lsrs r0, 24 cmp r5, r0 bcs _08082C2E ldr r0, =gUnknown_020322A4 ldr r0, [r0] lsls r1, r5, 1 adds r0, 0x64 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _08082C0C _08082C2E: bl sub_8009FCC lsls r0, 24 lsrs r0, 24 cmp r5, r0 bne _08082CA4 movs r5, 0 ldr r4, =0x00007779 b _08082C4E .pool _08082C48: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08082C4E: bl sub_8009FCC lsls r0, 24 lsrs r0, 24 cmp r5, r0 bcs _08082C6A ldr r0, =gUnknown_020322A4 ldr r0, [r0] lsls r1, r5, 1 adds r0, 0x64 adds r0, r1 ldrh r0, [r0] cmp r0, r4 beq _08082C48 _08082C6A: ldr r4, =gUnknown_03003110 adds r0, r4, 0 bl sub_8081F94 bl sub_8009FCC lsls r0, 24 lsrs r0, 24 cmp r5, r0 bne _08082C90 ldr r0, =0x00002222 strh r0, [r4, 0x2] b _08082CA4 .pool _08082C90: ldr r0, =0x00001111 strh r0, [r4, 0x2] ldr r0, =gUnknown_020322A4 ldr r0, [r0] lsls r1, r5, 1 adds r0, 0x64 adds r0, r1 ldrh r0, [r0] strh r0, [r4, 0x4] strh r5, [r4, 0x6] _08082CA4: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8082AD4 thumb_func_start sub_8082CB4 sub_8082CB4: @ 8082CB4 push {r4,lr} sub sp, 0x14 movs r1, 0xF0 lsls r1, 7 str r1, [sp] movs r1, 0xA0 lsls r1, 7 str r1, [sp, 0x4] mov r3, sp ldr r1, =gUnknown_020322A4 ldr r1, [r1] mov r12, r1 movs r1, 0x8E lsls r1, 1 add r1, r12 ldrh r2, [r1] movs r1, 0x78 subs r1, r2 strh r1, [r3, 0x8] movs r1, 0x8F lsls r1, 1 add r1, r12 ldrh r2, [r1] movs r1, 0x50 subs r1, r2 strh r1, [r3, 0xA] mov r2, sp movs r3, 0x8D lsls r3, 1 add r3, r12 ldrh r1, [r3] strh r1, [r2, 0xC] ldrh r1, [r3] strh r1, [r2, 0xE] mov r1, r12 adds r1, 0x4A ldrh r1, [r1] strh r1, [r2, 0x10] mov r1, sp ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2,r3} stm r0!, {r2,r3} add sp, 0x14 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8082CB4 thumb_func_start sub_8082D18 sub_8082D18: @ 8082D18 ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r0, 0x4A ldrh r0, [r0] bx lr .pool thumb_func_end sub_8082D18 thumb_func_start sub_8082D28 sub_8082D28: @ 8082D28 push {r4,lr} movs r1, 0 ldr r4, =gUnknown_03003124 ldrb r0, [r4] cmp r0, 0 beq _08082D3C bl GetMultiplayerId lsls r0, 24 lsrs r1, r0, 24 _08082D3C: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08082DCC ldrb r0, [r4] cmp r0, 0 beq _08082DCC cmp r1, 0 bne _08082D90 ldr r0, =gUnknown_020322A4 ldr r3, [r0] adds r2, r3, 0 adds r2, 0x4A adds r0, r3, 0 adds r0, 0x4C ldrh r0, [r0] ldrh r1, [r2] adds r0, r1 strh r0, [r2] ldr r1, =gUnknown_03003110 movs r4, 0x8B lsls r4, 1 adds r0, r3, r4 ldrh r0, [r0] strh r0, [r1, 0xA] ldrh r0, [r2] strh r0, [r1, 0xC] movs r1, 0xA0 lsls r1, 1 adds r0, r3, r1 bl sub_8082CB4 b _08082DEA .pool _08082D90: ldr r3, =gUnknown_03003090 ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0x88 lsls r0, 7 cmp r1, r0 bne _08082DEA ldr r0, =gUnknown_020322A4 ldr r2, [r0] ldrh r0, [r3, 0xA] movs r4, 0x8B lsls r4, 1 adds r1, r2, r4 strh r0, [r1] ldrh r0, [r3, 0xC] adds r1, r2, 0 adds r1, 0x4A strh r0, [r1] movs r1, 0xA0 lsls r1, 1 adds r0, r2, r1 bl sub_8082CB4 b _08082DEA .pool _08082DCC: ldr r0, =gUnknown_020322A4 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x4A adds r0, r1, 0 adds r0, 0x4C ldrh r0, [r0] ldrh r3, [r2] adds r0, r3 strh r0, [r2] movs r4, 0xA0 lsls r4, 1 adds r0, r1, r4 bl sub_8082CB4 _08082DEA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8082D28 thumb_func_start sub_8082DF4 sub_8082DF4: @ 8082DF4 push {r4-r6,lr} ldr r4, =gUnknown_020322A4 ldr r0, [r4] movs r6, 0x8E lsls r6, 1 adds r0, r6 ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg ldr r0, [r4] movs r5, 0x8F lsls r5, 1 adds r0, r5 ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg ldr r0, [r4] adds r0, r6 ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg ldr r0, [r4] adds r0, r5 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8082DF4 thumb_func_start sub_8082E3C sub_8082E3C: @ 8082E3C 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 _08082E5A adds r0, 0x7 _08082E5A: asrs r0, 3 strh r0, [r2, 0x24] movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0 bge _08082E68 adds r0, 0x7 _08082E68: 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 _08082E80 adds r0, r2, 0 bl DestroySprite _08082E80: pop {r0} bx r0 thumb_func_end sub_8082E3C thumb_func_start sub_8082E84 sub_8082E84: @ 8082E84 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 _08082F40 ldr r0, =gSineTable mov r9, r0 ldr r2, =gSprites mov r10, r2 adds r6, r1, 0x1 movs r3, 0x1F mov r8, r3 movs r7, 0x10 _08082EB0: bl Random ldr r1, =gUnknown_020322A4 ldr r4, [r1] adds r4, 0x4A 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 _08082EE4 adds r1, 0x3 _08082EE4: asrs r1, 2 lsls r0, r2, 1 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _08082EF4 adds r0, 0x3 _08082EF4: asrs r2, r0, 2 adds r1, 0x78 adds r2, 0x50 ldr r0, =gUnknown_08339BE0 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, =gSprites + 0x1C adds r5, r3 ldr r0, =sub_8082E3C str r0, [r5] subs r6, 0x1 cmp r6, 0 bne _08082EB0 _08082F40: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8082E84 thumb_func_start sub_8082F68 sub_8082F68: @ 8082F68 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 _08082F94 adds r0, r4, 0 bl DestroySprite _08082F94: pop {r4} pop {r0} bx r0 thumb_func_end sub_8082F68 thumb_func_start sub_8082F9C sub_8082F9C: @ 8082F9C 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 _08082FC0 ldr r0, =0x0000fff4 strh r0, [r2, 0x26] _08082FC0: adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08082FD4 adds r0, r2, 0 bl DestroySprite _08082FD4: pop {r0} bx r0 .pool thumb_func_end sub_8082F9C thumb_func_start sub_8082FDC sub_8082FDC: @ 8082FDC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r2, =gUnknown_020322A4 ldr r3, [r2] lsls r4, r0, 1 adds r2, r3, 0 adds r2, 0x74 adds r2, r4 strh r1, [r2] lsls r0, 4 movs r2, 0xAC lsls r2, 1 adds r0, r2 adds r3, r0 adds r0, r3, 0 bl sub_807FE14 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8082FDC thumb_func_start sub_8083010 sub_8083010: @ 8083010 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0808304C cmp r0, 0x1 bgt _08083026 cmp r0, 0 beq _0808302C b _080830B2 _08083026: cmp r0, 0x2 beq _08083066 b _080830B2 _0808302C: ldrh r0, [r4, 0x30] adds r0, 0x8 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x58 ble _080830B2 movs r0, 0x58 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x38 bl PlaySE b _080830B2 _0808304C: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080830B2 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0 strh r0, [r4, 0x32] b _080830B2 _08083066: ldrh r0, [r4, 0x30] adds r0, 0x4 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xB0 ble _080830B2 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 _080830A0 adds r0, r4, 0 bl DestroySprite ldr r0, =gUnknown_08339C60 movs r2, 0x14 negs r2, r2 movs r1, 0x78 movs r3, 0x2 bl CreateSprite b _080830B2 .pool _080830A0: movs r0, 0 strh r0, [r4, 0x2E] ldr r0, =0x0000fff0 strh r0, [r4, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim _080830B2: ldrh r0, [r4, 0x30] strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8083010 thumb_func_start sub_80830C0 sub_80830C0: @ 80830C0 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080830FC cmp r0, 0x1 bgt _080830D6 cmp r0, 0 beq _080830DC b _08083130 _080830D6: cmp r0, 0x2 beq _08083112 b _08083130 _080830DC: ldrh r0, [r4, 0x30] adds r0, 0x8 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5C ble _08083130 movs r0, 0x5C strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x15 bl PlaySE b _08083130 _080830FC: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _08083130 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _08083130 _08083112: ldrh r0, [r4, 0x30] adds r0, 0x4 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xB0 ble _08083130 ldr r0, =gUnknown_020322A4 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r0, r4, 0 bl DestroySprite _08083130: ldrh r0, [r4, 0x30] strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80830C0 thumb_func_start sub_8083140 sub_8083140: @ 8083140 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r3, r1, 16 ldr r1, =gUnknown_020322A4 ldr r1, [r1] movs r2, 0x8C lsls r2, 1 adds r1, r2 ldrh r2, [r1] cmp r2, r0 bcs _08083166 adds r0, r2, 0x2 strh r0, [r1] ldrh r0, [r1] adds r1, r3, 0 bl sub_8083170 _08083166: pop {r0} bx r0 .pool thumb_func_end sub_8083140 thumb_func_start sub_8083170 sub_8083170: @ 8083170 push {r4-r7,lr} lsls r0, 16 lsls r1, 16 lsrs r1, 16 ldr r7, =0x06006000 lsrs r0, 10 bl __divsi3 adds r1, r0, 0 cmp r1, 0 bge _08083188 adds r0, r1, 0x7 _08083188: asrs r4, r0, 3 movs r3, 0 cmp r3, r4 bge _080831B0 ldr r0, =0x000080e9 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 _080831A0: strh r6, [r0, 0x16] strh r5, [r2] adds r2, 0x2 adds r0, 0x2 subs r3, 0x1 cmp r3, 0 bne _080831A0 adds r3, r4, 0 _080831B0: adds r0, r1, 0 cmp r1, 0 bge _080831B8 adds r0, r1, 0x7 _080831B8: asrs r2, r0, 3 lsls r0, r2, 3 subs r2, r1, r0 cmp r2, 0 beq _080831D6 lsls r0, r3, 1 adds r0, r7 ldr r4, =0xffff80e1 adds r1, r2, r4 strh r1, [r0, 0x16] adds r0, 0x56 adds r4, 0x10 adds r1, r2, r4 strh r1, [r0] adds r3, 0x1 _080831D6: cmp r3, 0x7 bgt _080831FA ldr r0, =0x000080e1 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 _080831EC: strh r4, [r1, 0x16] strh r2, [r0] adds r0, 0x2 adds r1, 0x2 adds r3, 0x1 cmp r3, 0x7 ble _080831EC _080831FA: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8083170 thumb_func_start sub_8083210 sub_8083210: @ 8083210 push {lr} lsls r0, 16 lsrs r0, 16 ldr r1, =0x00057e40 muls r0, r1 cmp r0, 0 bge _08083222 ldr r1, =0x0000ffff adds r0, r1 _08083222: asrs r0, 16 pop {r1} bx r1 .pool thumb_func_end sub_8083210 thumb_func_start sub_8083230 sub_8083230: @ 8083230 push {r4-r6,lr} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 bl sub_8083210 adds r5, r0, 0 ldr r0, =gUnknown_020322A4 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x4E ldrh r0, [r1] cmp r0, r5 bcs _0808324E strh r5, [r1] _0808324E: movs r6, 0 _08083250: 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 _08083250 ldr r2, =0x06006458 mov r0, sp ldr r3, =0x00008072 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 .pool thumb_func_end sub_8083230 thumb_func_start sub_80832BC sub_80832BC: @ 80832BC 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 _080832E0 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __umodsi3 lsrs r1, r4, 17 subs r0, r1 strh r0, [r6] _080832E0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80832BC thumb_func_start sub_80832E8 sub_80832E8: @ 80832E8 push {lr} adds r1, r0, 0 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bge _080832FA adds r0, r2, 0x1 strh r0, [r1] _080832FA: ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _08083308 subs r0, r2, 0x1 strh r0, [r1] _08083308: pop {r0} bx r0 thumb_func_end sub_80832E8 thumb_func_start sub_808330C sub_808330C: @ 808330C push {r4,lr} ldr r4, =gUnknown_020322A4 ldr r0, [r4] movs r1, 0x8E lsls r1, 1 adds r0, r1 bl sub_80832E8 ldr r0, [r4] movs r1, 0x8F lsls r1, 1 adds r0, r1 bl sub_80832E8 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_808330C thumb_func_start sub_8083334 sub_8083334: @ 8083334 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 16 lsrs r1, 16 movs r5, 0x8 cmp r1, 0x9 bhi _08083344 movs r5, 0x10 _08083344: ldrh r0, [r4] movs r2, 0 ldrsh r1, [r4, r2] cmp r1, 0 bne _08083362 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __modsi3 lsrs r1, r5, 1 subs r0, r1 b _08083376 _08083362: cmp r1, 0 bge _0808336A adds r0, 0x1 strh r0, [r4] _0808336A: ldrh r1, [r4] movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 ble _08083378 subs r0, r1, 0x1 _08083376: strh r0, [r4] _08083378: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8083334 thumb_func_start sub_8083380 sub_8083380: @ 8083380 push {r4,r5,lr} ldr r5, =gUnknown_020322A4 ldr r2, [r5] movs r4, 0x84 lsls r4, 1 adds r0, r2, r4 ldr r1, [r0] cmp r1, 0 bne _080833A0 movs r3, 0x8E lsls r3, 1 adds r0, r2, r3 strh r1, [r0] adds r3, 0x2 adds r0, r2, r3 strh r1, [r0] _080833A0: ldr r0, [r5] adds r2, r0, r4 ldr r1, [r2] adds r1, 0x1 str r1, [r2] movs r2, 0x8E lsls r2, 1 adds r0, r2 lsls r1, 16 lsrs r1, 16 bl sub_8083334 ldr r1, [r5] movs r3, 0x8F lsls r3, 1 adds r0, r1, r3 adds r1, r4 ldrh r1, [r1] bl sub_8083334 ldr r2, [r5] adds r0, r2, r4 ldr r0, [r0] cmp r0, 0x14 beq _080833DC movs r0, 0 b _080833F0 .pool _080833DC: movs r1, 0x8E lsls r1, 1 adds r0, r2, r1 movs r1, 0 strh r1, [r0] movs r3, 0x8F lsls r3, 1 adds r0, r2, r3 strh r1, [r0] movs r0, 0x1 _080833F0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8083380 thumb_func_start sub_80833F8 sub_80833F8: @ 80833F8 ldr r1, =gUnknown_020322A4 ldr r2, [r1] movs r3, 0x8E 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 .pool thumb_func_end sub_80833F8 thumb_func_start UpdateBerryBlenderRecord @ void UpdateBerryBlenderRecord() UpdateBerryBlenderRecord: @ 8083418 push {lr} ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r0, =gUnknown_020322A4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x7C ldrb r0, [r0] subs r0, 0x2 lsls r0, 1 ldr r3, =0x000009bc adds r2, r3 adds r2, r0 adds r1, 0x4E ldrh r1, [r1] ldrh r0, [r2] cmp r0, r1 bcs _0808343E strh r1, [r2] _0808343E: pop {r0} bx r0 .pool thumb_func_end UpdateBerryBlenderRecord thumb_func_start berry_blender_related berry_blender_related: @ 8083450 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4C ldr r1, =gUnknown_020322A4 ldr r0, [r1] ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _0808346A b _08083898 _0808346A: lsls r0, 2 ldr r1, =_0808347C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0808347C: .4byte _08083498 .4byte _080834AE .4byte _080834C8 .4byte _08083518 .4byte _08083790 .4byte _080837A8 .4byte _0808386C _08083498: ldr r1, [r4] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r4] movs r1, 0x84 lsls r1, 1 adds r0, r1 movs r1, 0x11 str r1, [r0] b _08083898 _080834AE: ldr r1, [r4] movs r3, 0x84 lsls r3, 1 adds r2, r1, r3 ldr r0, [r2] subs r0, 0xA str r0, [r2] cmp r0, 0 blt _080834C2 b _08083898 _080834C2: movs r0, 0 str r0, [r2] b _08083854 _080834C8: ldr r1, [r4] movs r0, 0x84 lsls r0, 1 adds r1, r0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x14 bgt _080834DC b _08083898 _080834DC: movs r6, 0 _080834DE: ldr r4, =gUnknown_020322A4 ldr r0, [r4] adds r0, 0x46 adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x2 bls _080834DE ldr r1, [r4] movs r3, 0x84 lsls r3, 1 adds r2, r1, r3 movs r0, 0 str r0, [r2] b _08083854 .pool _08083518: ldr r4, =gUnknown_083398F5 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xA8 bl GetStringCenterAlignXOffset lsls r2, r0, 24 lsrs r2, 24 movs r0, 0xFF str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x5 adds r1, r4, 0 movs r3, 0x1 bl sub_80840D4 ldr r1, =gUnknown_020322A4 ldr r0, [r1] adds r2, r0, 0 adds r2, 0x7C ldrb r0, [r2] movs r3, 0x15 mov r9, r3 cmp r0, 0x4 bne _08083550 movs r0, 0x11 mov r9, r0 _08083550: movs r6, 0 mov r3, sp adds r3, 0x10 str r3, [sp, 0x48] ldrb r2, [r2] cmp r6, r2 bcs _0808361A adds r7, r1, 0 movs r0, 0x3 mov r10, r0 _08083564: ldr r0, [r7] movs r2, 0x9E lsls r2, 1 adds r1, r0, r2 adds r1, r6 ldrb r5, [r1] adds r0, 0x9F adds r6, 0x1 mov r8, r6 mov r1, r8 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, [r7] adds r0, 0x9F ldr r1, =gUnknown_08339941 bl StringAppend ldr r0, [r7] adds r0, 0x9F ldr r1, =gText_Space bl StringAppend ldr r0, [r7] adds r0, 0x9F lsls r4, r5, 3 subs r4, r5 lsls r4, 2 ldr r3, =gLinkPlayers + 8 adds r1, r4, r3 bl StringAppend ldr r1, [r7] adds r1, 0x9F mov r0, r9 lsls r6, r0, 24 lsrs r6, 24 movs r2, 0xFF str r2, [sp] mov r3, r10 str r3, [sp, 0x4] movs r0, 0x5 movs r2, 0x8 adds r3, r6, 0 bl sub_80840D4 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x9F lsls r5, 4 adds r5, r1 movs r1, 0xAD lsls r1, 1 adds r5, r1 adds r1, r5, 0 bl StringCopy ldr r0, [r7] adds r0, 0x9F ldr r2, =gLinkPlayers adds r4, r2 ldrb r1, [r4, 0x1A] bl ConvertInternationalString ldr r0, [r7] adds r0, 0x9F ldr r1, =gUnknown_08339914 bl StringAppend ldr r1, [r7] adds r1, 0x9F movs r3, 0xFF str r3, [sp] mov r0, r10 str r0, [sp, 0x4] movs r0, 0x5 movs r2, 0x54 adds r3, r6, 0 bl sub_80840D4 movs r1, 0x10 add r9, r1 mov r2, r8 lsls r2, 16 lsrs r6, r2, 16 ldr r0, [r7] adds r0, 0x7C ldrb r0, [r0] cmp r6, r0 bcc _08083564 _0808361A: ldr r1, =gUnknown_0833992E movs r3, 0xFF mov r10, r3 str r3, [sp] movs r0, 0x3 mov r9, r0 str r0, [sp, 0x4] movs r0, 0x5 movs r2, 0 movs r3, 0x51 bl sub_80840D4 ldr r6, =gUnknown_020322A4 ldr r0, [r6] adds r4, r0, 0 adds r4, 0x9F adds r0, 0x4E ldrh r0, [r0] movs r1, 0x64 bl __udivsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, [r6] adds r0, 0x9F ldr r1, =gUnknown_08339941 bl StringAppend ldr r0, [r6] adds r0, 0x4E ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x48] movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, [r6] adds r0, 0x9F ldr r1, [sp, 0x48] bl StringAppend ldr r0, [r6] adds r0, 0x9F ldr r1, =gUnknown_0833993C bl StringAppend ldr r1, [r6] adds r1, 0x9F movs r0, 0x1 movs r2, 0xA8 bl GetStringRightAlignXOffset ldr r1, [r6] adds r1, 0x9F lsls r2, r0, 24 lsrs r2, 24 mov r3, r10 str r3, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0x5 movs r3, 0x51 bl sub_80840D4 ldr r1, =gUnknown_0833991B mov r2, r10 str r2, [sp] mov r3, r9 str r3, [sp, 0x4] movs r0, 0x5 movs r2, 0 movs r3, 0x61 bl sub_80840D4 ldr r5, [r6] movs r1, 0x82 lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] mov r8, r0 movs r1, 0x3C bl __udivsi3 movs r1, 0x3C bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r1, 0xE1 lsls r1, 4 mov r0, r8 bl __udivsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r5, 0x9F adds r0, r5, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, [r6] adds r0, 0x9F ldr r1, =gUnknown_08339921 bl StringAppend adds r1, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, [r6] adds r0, 0x9F ldr r1, =gUnknown_08339928 bl StringAppend ldr r1, [r6] adds r1, 0x9F movs r0, 0x1 movs r2, 0xA8 bl GetStringRightAlignXOffset ldr r1, [r6] adds r1, 0x9F lsls r2, r0, 24 lsrs r2, 24 mov r3, r10 str r3, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0x5 movs r3, 0x61 bl sub_80840D4 ldr r1, [r6] movs r3, 0x84 lsls r3, 1 adds r2, r1, r3 movs r0, 0 str r0, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x5 movs r1, 0x2 bl CopyWindowToVram b _08083898 .pool _08083790: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0808379E b _08083898 _0808379E: ldr r1, [r4] b _08083854 .pool _080837A8: movs r0, 0x5 movs r1, 0x1 bl sub_8198070 movs r6, 0 add r7, sp, 0x40 ldr r5, =gUnknown_020322A4 _080837B6: ldr r0, [r5] lsls r2, r6, 1 adds r0, 0x74 adds r0, r2 ldrh r1, [r0] cmp r1, 0 beq _080837CC add r0, sp, 0x38 adds r0, r2 subs r1, 0x85 strh r1, [r0] _080837CC: ldr r0, [r5] adds r0, 0x8E adds r0, r2 ldrh r0, [r0] cmp r0, 0xFF beq _080837EA lsls r4, r6, 24 lsrs r4, 24 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram _080837EA: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x3 bls _080837B6 bl sub_8081E20 ldr r4, =gUnknown_020322A4 ldr r3, [r4] movs r1, 0xAC lsls r1, 1 adds r0, r3, r1 adds r1, r3, 0 adds r1, 0x7C ldrb r2, [r1] subs r1, 0x2E ldrh r1, [r1] str r1, [sp] adds r1, r7, 0 add r3, sp, 0x8 bl sub_8081BE0 ldr r1, [r4] adds r1, 0x9F adds r0, r7, 0 bl sub_80838AC ldr r1, [r4] movs r2, 0xD4 lsls r2, 1 adds r1, r2 adds r0, r7, 0 bl sub_8083F94 ldr r0, =sub_8083F3C movs r1, 0x6 bl CreateTask bl sub_80EECEC ldr r0, =gScriptItemId ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem adds r0, r7, 0 bl sub_8136F2C ldr r1, [r4] ldr r3, =0x000011b8 adds r2, r1, r3 movs r0, 0 strh r0, [r2] _08083854: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08083898 .pool _0808386C: ldr r4, [r4] ldr r0, =0x000011b8 adds r5, r4, r0 adds r4, 0x9F bl sav2_get_text_speed adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_808417C cmp r0, 0 beq _08083898 bl UpdateBerryBlenderRecord movs r0, 0x1 b _0808389A .pool _08083898: movs r0, 0 _0808389A: add sp, 0x4C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end berry_blender_related thumb_func_start sub_80838AC sub_80838AC: @ 80838AC push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 adds r6, r1, 0 movs r0, 0xFF strb r0, [r6] ldr r1, =gPokeblockNames ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl StringCopy ldr r1, =gUnknown_0833979D adds r0, r6, 0 bl StringAppend ldr r1, =gUnknown_08339943 adds r0, r6, 0 bl StringAppend adds r0, r5, 0 bl sub_8136EA4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_8136EDC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, =gUnknown_0833994F 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, =gUnknown_0833995D 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, =gUnknown_08339970 adds r0, r6, 0 bl StringAppend ldr r1, =gUnknown_0833979B adds r0, r6, 0 bl StringAppend add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80838AC thumb_func_start sub_808395C sub_808395C: @ 808395C 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 _080839A8 _08083972: movs r5, 0 adds r1, r0, 0x1 mov r8, r1 cmp r5, r7 bge _080839A2 mov r1, r9 adds r6, r1, r0 _08083980: 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 _0808399C strb r3, [r6] strb r4, [r2] _0808399C: adds r5, 0x1 cmp r5, r7 blt _08083980 _080839A2: mov r0, r8 cmp r0, r7 blt _08083972 _080839A8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808395C thumb_func_start sub_80839B4 sub_80839B4: @ 80839B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r5, 0 ldr r2, =gUnknown_020322A4 ldr r0, [r2] adds r0, 0x7C adds r1, r2, 0 add r3, sp, 0x4 mov r10, r3 b _080839E4 .pool _080839D4: mov r4, sp adds r0, r4, r5 strb r5, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r2] adds r0, 0x7C _080839E4: ldrb r0, [r0] cmp r5, r0 bcc _080839D4 movs r5, 0 ldr r0, [r1] adds r1, r0, 0 adds r1, 0x7C ldrb r2, [r1] cmp r5, r2 bcs _08083A5E mov r9, r10 movs r3, 0x92 lsls r3, 1 adds r3, r0 mov r8, r3 mov r12, r1 movs r4, 0x93 lsls r4, 1 adds r7, r0, r4 movs r1, 0x94 lsls r1, 1 adds r6, r0, r1 _08083A10: 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 _08083A10 _08083A5E: ldr r4, =gUnknown_020322A4 ldr r0, [r4] adds r0, 0x7C ldrb r1, [r0] mov r0, sp mov r2, r10 bl sub_808395C movs r5, 0 ldr r0, [r4] adds r0, 0x7C ldrb r0, [r0] cmp r5, r0 bcs _08083A9E adds r2, r4, 0 movs r3, 0x9E lsls r3, 1 _08083A80: 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, 0x7C ldrb r0, [r0] cmp r5, r0 bcc _08083A80 _08083A9E: ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08083AB4 movs r3, 0 b _08083ABC .pool _08083AB4: bl GetMultiplayerId lsls r0, 24 lsrs r3, r0, 24 _08083ABC: movs r5, 0 ldr r1, =gUnknown_020322A4 ldr r0, [r1] adds r0, 0x7C ldrb r0, [r0] cmp r5, r0 bcs _08083AF2 movs r6, 0x9E lsls r6, 1 movs r4, 0xD2 lsls r4, 1 _08083AD2: ldr r2, [r1] adds r0, r2, r6 adds r0, r5 ldrb r0, [r0] cmp r0, r3 bne _08083AE2 adds r0, r2, r4 strb r5, [r0] _08083AE2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r1] adds r0, 0x7C ldrb r0, [r0] cmp r5, r0 bcc _08083AD2 _08083AF2: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80839B4 thumb_func_start sub_8083B08 sub_8083B08: @ 8083B08 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r1, =gUnknown_020322A4 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bls _08083B22 b _08083E12 _08083B22: lsls r0, 2 ldr r1, =_08083B34 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08083B34: .4byte _08083B50 .4byte _08083B66 .4byte _08083B80 .4byte _08083B9A .4byte _08083DC8 .4byte _08083DE2 .4byte _08083E08 _08083B50: ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] movs r1, 0x84 lsls r1, 1 adds r0, r1 movs r1, 0xFF str r1, [r0] b _08083E12 _08083B66: ldr r1, [r2] movs r3, 0x84 lsls r3, 1 adds r2, r1, r3 ldr r0, [r2] subs r0, 0xA str r0, [r2] cmp r0, 0 blt _08083B7A b _08083E12 _08083B7A: movs r0, 0 str r0, [r2] b _08083DF8 _08083B80: ldr r1, [r2] movs r0, 0x84 lsls r0, 1 adds r2, r1, r0 ldr r0, [r2] adds r0, 0x1 str r0, [r2] cmp r0, 0x14 bgt _08083B94 b _08083E12 _08083B94: movs r0, 0 str r0, [r2] b _08083DF8 _08083B9A: movs r0, 0x5 movs r1, 0 movs r2, 0x1 movs r3, 0xD bl SetWindowBorderStyle ldr r4, =gUnknown_08339947 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xA8 bl GetStringCenterAlignXOffset adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0xFF str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x5 adds r1, r4, 0 movs r3, 0x1 bl sub_80840D4 ldr r1, =gUnknown_08339B40 mov r8, r1 mov r0, r8 movs r1, 0x80 movs r2, 0x34 movs r3, 0 bl CreateSprite ldr r7, =gUnknown_020322A4 ldr r1, [r7] adds r1, 0x46 strb r0, [r1] ldr r0, [r7] adds r0, 0x46 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r6, =gSprites adds r0, r6 movs r1, 0x3 bl StartSpriteAnim ldr r0, [r7] adds r0, 0x46 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r0, r5 ldr r4, =SpriteCallbackDummy str r4, [r0] mov r0, r8 movs r1, 0xA0 movs r2, 0x34 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x47 strb r0, [r1] ldr r0, [r7] adds r0, 0x47 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 str r4, [r0] mov r0, r8 movs r1, 0xC0 movs r2, 0x34 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x48 strb r0, [r1] ldr r0, [r7] adds r0, 0x48 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAnim ldr r0, [r7] adds r0, 0x48 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 str r4, [r0] bl sub_80839B4 movs r2, 0x29 str r2, [sp, 0x8] movs r2, 0 ldr r0, [r7] adds r0, 0x7C ldrb r0, [r0] cmp r2, r0 bcc _08083C7C b _08083D8A _08083C7C: movs r3, 0xFF mov r10, r3 movs r0, 0x3 mov r9, r0 _08083C84: ldr r0, [r7] movs r3, 0x9E lsls r3, 1 adds r1, r0, r3 adds r1, r2 ldrb r5, [r1] adds r0, 0x9F adds r2, 0x1 mov r8, r2 mov r1, r8 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, [r7] adds r0, 0x9F ldr r1, =gUnknown_08339941 bl StringAppend ldr r0, [r7] adds r0, 0x9F ldr r1, =gText_Space bl StringAppend ldr r0, [r7] adds r0, 0x9F lsls r1, r5, 3 subs r1, r5 lsls r1, 2 ldr r2, =gLinkPlayers + 8 adds r1, r2 bl StringAppend ldr r1, [r7] adds r1, 0x9F ldr r0, [sp, 0x8] lsls r6, r0, 24 lsrs r6, 24 mov r2, r10 str r2, [sp] mov r3, r9 str r3, [sp, 0x4] movs r0, 0x5 movs r2, 0 adds r3, r6, 0 bl sub_80840D4 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x9F lsls r4, r5, 1 adds r4, r5 lsls r4, 1 movs r2, 0x92 lsls r2, 1 adds r1, r2 adds r1, r4 ldrh r1, [r1] movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, [r7] adds r1, 0x9F mov r3, r10 str r3, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0x5 movs r2, 0x4E adds r3, r6, 0 bl sub_80840D4 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x9F movs r2, 0x93 lsls r2, 1 adds r1, r2 adds r1, r4 ldrh r1, [r1] movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, [r7] adds r1, 0x9F mov r3, r10 str r3, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0x5 movs r2, 0x6E adds r3, r6, 0 bl sub_80840D4 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x9F movs r2, 0x94 lsls r2, 1 adds r1, r2 adds r1, r4 ldrh r1, [r1] movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, [r7] adds r1, 0x9F mov r3, r10 str r3, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0x5 movs r2, 0x8E adds r3, r6, 0 bl sub_80840D4 ldr r1, [sp, 0x8] adds r1, 0x10 str r1, [sp, 0x8] mov r2, r8 lsls r2, 16 lsrs r2, 16 ldr r0, [r7] adds r0, 0x7C ldrb r0, [r0] cmp r2, r0 bcs _08083D8A b _08083C84 _08083D8A: movs r0, 0x5 bl PutWindowTilemap movs r0, 0x5 movs r1, 0x3 bl CopyWindowToVram ldr r0, =gUnknown_020322A4 ldr r1, [r0] movs r3, 0x84 lsls r3, 1 adds r2, r1, r3 movs r0, 0 str r0, [r2] b _08083DF8 .pool _08083DC8: ldr r2, [r2] movs r0, 0x84 lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x14 ble _08083E12 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _08083E12 _08083DE2: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08083E12 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_020322A4 ldr r1, [r0] _08083DF8: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08083E12 .pool _08083E08: ldr r1, [r2] movs r0, 0 strb r0, [r1] movs r0, 0x1 b _08083E14 _08083E12: movs r0, 0 _08083E14: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8083B08 thumb_func_start ShowBerryBlenderRecordWindow ShowBerryBlenderRecordWindow: @ 8083E24 push {r4-r7,lr} sub sp, 0x34 ldr r0, =gUnknown_08339D14 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x2C] str r1, [sp, 0x30] ldr r5, =gUnknown_0203AB74 add r0, sp, 0x2C bl AddWindow strb r0, [r5] ldrb r0, [r5] movs r1, 0 bl sub_81973FC ldrb r0, [r5] movs r1, 0x11 bl FillWindowPixelBuffer ldr r6, =gText_BlenderMaxSpeedRecord movs r0, 0x1 adds r1, r6, 0 movs r2, 0x90 bl GetStringCenterAlignXOffset adds r3, r0, 0 ldrb r0, [r5] lsls r3, 24 lsrs r3, 24 movs r1, 0x1 str r1, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] adds r2, r6, 0 bl PrintTextOnWindow ldrb r0, [r5] ldr r2, =gText_234Players movs r1, 0x29 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x4 bl PrintTextOnWindow movs r6, 0 movs r7, 0xA4 lsls r7, 22 _08083E8A: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] lsls r1, r6, 1 ldr r2, =0x000009bc adds r0, r2 adds r0, r1 ldrh r4, [r0] adds r0, r4, 0 movs r1, 0x64 bl __udivsi3 adds r1, r0, 0 add r0, sp, 0xC movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r5, r0, 0 ldr r1, =gUnknown_08339941 bl StringAppend adds r5, r0, 0 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, =gUnknown_0833993C bl StringAppend movs r0, 0x1 add r1, sp, 0xC movs r2, 0x8C bl GetStringRightAlignXOffset adds r3, r0, 0 ldr r4, =gUnknown_0203AB74 ldrb r0, [r4] lsls r3, 24 lsrs r3, 24 lsrs r1, r7, 24 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC bl PrintTextOnWindow movs r0, 0x80 lsls r0, 21 adds r7, r0 adds r6, 0x1 cmp r6, 0x2 ble _08083E8A ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram add sp, 0x34 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end ShowBerryBlenderRecordWindow thumb_func_start sub_8083F3C sub_8083F3C: @ 8083F3C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, =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 _08083F62 ldr r0, =0x0000016f bl PlayFanfare ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08083F62: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08083F82 ldr r0, =gUnknown_020322A4 ldr r0, [r0] movs r1, 0xAA lsls r1, 1 adds r0, r1 ldrh r0, [r0] bl PlayBGM adds r0, r5, 0 bl DestroyTask _08083F82: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8083F3C thumb_func_start sub_8083F94 sub_8083F94: @ 8083F94 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 bl sub_8136EA4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8136EDC adds r1, r0, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 1 lsls r1, 24 lsrs r1, 24 bl __divsi3 lsls r0, 16 lsrs r3, r0, 16 strb r3, [r7, 0xD] ldrb r0, [r6] strb r0, [r7, 0xC] movs r0, 0xFF strb r0, [r7] ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 beq _080840C4 ldr r0, =gUnknown_020322A4 ldr r2, [r0] movs r4, 0xD2 lsls r4, 1 adds r1, r2, r4 ldrb r1, [r1] mov r8, r0 cmp r1, 0 bne _08084058 cmp r3, 0x14 bls _08084058 adds r0, r2, 0 adds r0, 0x7C ldrb r1, [r0] subs r1, 0x1 movs r0, 0x9E lsls r0, 1 mov r9, r0 adds r0, r2, r0 adds r0, r1 ldrb r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r5, =gLinkPlayers + 8 adds r1, r5 adds r0, r7, 0 bl StringCopy adds r0, r6, 0 bl sub_81370B4 strb r0, [r7, 0xB] ldrb r1, [r7, 0xB] ldrb r2, [r7, 0xC] ldrb r3, [r7, 0xD] mov r6, r8 ldr r4, [r6] adds r0, r4, 0 adds r0, 0x7C ldrb r0, [r0] subs r0, 0x1 add r4, r9 adds r4, r0 ldrb r4, [r4] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r5, r0 ldrb r0, [r5, 0x12] str r0, [sp] adds r0, r7, 0 bl sub_80ECC04 lsls r0, 24 cmp r0, 0 bne _080840BA b _080840C4 .pool _08084058: mov r0, r8 ldr r2, [r0] movs r1, 0xD2 lsls r1, 1 adds r0, r2, r1 ldrb r1, [r0] adds r0, r2, 0 adds r0, 0x7C ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _080840C4 cmp r3, 0x14 bhi _080840C4 movs r4, 0x9E lsls r4, 1 adds r0, r2, r4 ldrb r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r5, =gLinkPlayers + 8 adds r1, r5 adds r0, r7, 0 bl StringCopy adds r0, r6, 0 bl sub_81370B4 strb r0, [r7, 0xB] ldrb r1, [r7, 0xB] ldrb r2, [r7, 0xC] ldrb r3, [r7, 0xD] mov r6, r8 ldr r0, [r6] adds r0, r4 ldrb r4, [r0] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r5, r0 ldrb r0, [r5, 0x12] str r0, [sp] adds r0, r7, 0 bl sub_80ECC04 lsls r0, 24 cmp r0, 0 beq _080840C4 _080840BA: movs r0, 0x1 b _080840C6 .pool _080840C4: movs r0, 0 _080840C6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8083F94 thumb_func_start sub_80840D4 sub_80840D4: @ 80840D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 mov r9, r1 ldr r4, [sp, 0x38] lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r7, r3, 24 movs r5, 0 cmp r4, 0x1 beq _08084116 cmp r4, 0x1 bgt _08084100 cmp r4, 0 beq _08084108 b _08084132 _08084100: cmp r4, 0x2 beq _08084124 cmp r4, 0x3 bne _08084136 _08084108: add r1, sp, 0x14 movs r0, 0x1 strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] movs r0, 0x3 b _08084130 _08084116: add r0, sp, 0x14 strb r5, [r0] adds r1, r0, 0 movs r0, 0x2 strb r0, [r1, 0x1] movs r0, 0x3 b _08084130 _08084124: add r0, sp, 0x14 strb r5, [r0] adds r1, r0, 0 movs r0, 0x4 strb r0, [r1, 0x1] movs r0, 0x5 _08084130: strb r0, [r1, 0x2] _08084132: cmp r4, 0x3 beq _08084148 _08084136: add r0, sp, 0x14 ldrb r0, [r0] lsls r1, r0, 4 orrs r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl FillWindowPixelBuffer _08084148: movs r0, 0 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] add r0, sp, 0x14 str r0, [sp, 0x8] ldr r0, [sp, 0x34] lsls r0, 24 asrs r0, 24 str r0, [sp, 0xC] mov r0, r9 str r0, [sp, 0x10] adds r0, r6, 0 movs r1, 0x1 mov r2, r8 adds r3, r7, 0 bl AddTextPrinterParametrized2 add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80840D4 thumb_func_start sub_808417C sub_808417C: @ 808417C push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r7, r1, 0 adds r6, r2, 0 movs r0, 0 ldrsh r4, [r5, r0] cmp r4, 0 beq _08084194 cmp r4, 0x1 beq _080841C6 b _080841DA _08084194: movs r0, 0x4 movs r1, 0 movs r2, 0x14 movs r3, 0xF bl sub_8197B1C str r6, [sp] str r4, [sp, 0x4] movs r0, 0x4 adds r1, r7, 0 movs r2, 0 movs r3, 0x1 bl sub_80840D4 movs r0, 0x4 bl PutWindowTilemap movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080841DA _080841C6: movs r0, 0x4 bl IsTextPrinterActive lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _080841DA strh r0, [r5] movs r0, 0x1 b _080841DC _080841DA: movs r0, 0 _080841DC: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808417C .align 2, 0 @ Don't pad with nop.