.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start DoNamingScreen DoNamingScreen: @ 80B59CC push {r4,r5,lr} sub sp, 0x8 ldr r4, [sp, 0x14] ldr r5, [sp, 0x18] lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 str r4, [sp] str r5, [sp, 0x4] bl AddNamingScreenTask ldr r0, _080B59F8 @ =C2_NamingScreen bl SetMainCallback2 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B59F8: .4byte C2_NamingScreen thumb_func_end DoNamingScreen thumb_func_start C2_NamingScreen C2_NamingScreen: @ 80B59FC push {lr} ldr r0, _080B5A14 @ =gMain ldr r1, _080B5A18 @ =0x0000043c adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bhi _080B5A96 lsls r0, 2 ldr r1, _080B5A1C @ =_080B5A20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B5A14: .4byte gMain _080B5A18: .4byte 0x0000043c _080B5A1C: .4byte _080B5A20 .align 2, 0 _080B5A20: .4byte _080B5A40 .4byte _080B5A4A .4byte _080B5A50 .4byte _080B5A56 .4byte _080B5A5C .4byte _080B5A62 .4byte _080B5A68 .4byte _080B5A84 _080B5A40: bl NamingScreen_TurnOffScreen bl NamingScreen_Init b _080B5A6C _080B5A4A: bl NamingScreen_ClearVram b _080B5A6C _080B5A50: bl NamingScreen_ClearOam b _080B5A6C _080B5A56: bl NamingScreen_SetUpVideoRegs b _080B5A6C _080B5A5C: bl sub_80B5DC8 b _080B5A6C _080B5A62: bl NamingScreen_ResetObjects b _080B5A6C _080B5A68: bl sub_80B5DFC _080B5A6C: ldr r1, _080B5A7C @ =gMain ldr r0, _080B5A80 @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080B5A96 .align 2, 0 _080B5A7C: .4byte gMain _080B5A80: .4byte 0x0000043c _080B5A84: bl sub_80B5E20 bl sub_80B5E3C bl sub_80B5C04 ldr r0, _080B5A9C @ =sub_80B5AA0 bl SetMainCallback2 _080B5A96: pop {r0} bx r0 .align 2, 0 _080B5A9C: .4byte sub_80B5AA0 thumb_func_end C2_NamingScreen thumb_func_start sub_80B5AA0 sub_80B5AA0: @ 80B5AA0 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80B5AA0 thumb_func_start sub_80B5AB8 sub_80B5AB8: @ 80B5AB8 push {r4,lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r1, _080B5B00 @ =REG_BG1VOFS ldr r4, _080B5B04 @ =0x02000000 ldrh r0, [r4, 0x4] strh r0, [r1] adds r1, 0x4 ldrh r0, [r4, 0x6] strh r0, [r1] ldr r2, _080B5B08 @ =REG_BG1CNT ldrh r1, [r2] ldr r3, _080B5B0C @ =0x0000fffc adds r0, r3, 0 ands r0, r1 strh r0, [r2] ldrh r0, [r2] ldrh r1, [r4, 0x8] orrs r0, r1 strh r0, [r2] adds r2, 0x2 ldrh r0, [r2] ands r3, r0 strh r3, [r2] ldrh r0, [r2] ldrh r1, [r4, 0xA] orrs r0, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080B5B00: .4byte REG_BG1VOFS _080B5B04: .4byte 0x02000000 _080B5B08: .4byte REG_BG1CNT _080B5B0C: .4byte 0x0000fffc thumb_func_end sub_80B5AB8 thumb_func_start AddNamingScreenTask AddNamingScreenTask: @ 80B5B10 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 mov r9, r1 adds r5, r2, 0 adds r6, r3, 0 ldr r7, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, _080B5B74 @ =NamingScreenDummyTask movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080B5B78 @ =gTasks adds r4, r0 mov r0, r8 strh r0, [r4, 0x8] strh r5, [r4, 0xA] strh r6, [r4, 0xC] lsrs r0, r7, 16 strh r0, [r4, 0xE] strh r7, [r4, 0x10] adds r0, r4, 0 adds r0, 0x12 mov r1, r9 bl StoreWordInTwoHalfwords adds r4, 0x16 adds r0, r4, 0 ldr r1, [sp, 0x20] bl StoreWordInTwoHalfwords pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5B74: .4byte NamingScreenDummyTask _080B5B78: .4byte gTasks thumb_func_end AddNamingScreenTask thumb_func_start GetNamingScreenParameters GetNamingScreenParameters: @ 80B5B7C push {r4-r6,lr} ldr r0, _080B5BD8 @ =NamingScreenDummyTask bl FindTaskIdByFunc adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080B5BDC @ =gTasks adds r4, r0 ldr r6, _080B5BE0 @ =0x02000000 ldrh r0, [r4, 0x8] strb r0, [r6, 0x1] ldrh r0, [r4, 0xA] strh r0, [r6, 0x3E] ldrh r1, [r4, 0xC] adds r0, r6, 0 adds r0, 0x40 strh r1, [r0] movs r1, 0xE ldrsh r0, [r4, r1] lsls r0, 16 ldrh r1, [r4, 0x10] orrs r0, r1 str r0, [r6, 0x44] adds r0, r4, 0 adds r0, 0x12 adds r1, r6, 0 adds r1, 0x38 bl LoadWordFromTwoHalfwords adds r4, 0x16 adds r1, r6, 0 adds r1, 0x48 adds r0, r4, 0 bl LoadWordFromTwoHalfwords adds r0, r5, 0 bl DestroyTask pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B5BD8: .4byte NamingScreenDummyTask _080B5BDC: .4byte gTasks _080B5BE0: .4byte 0x02000000 thumb_func_end GetNamingScreenParameters thumb_func_start NamingScreenDummyTask NamingScreenDummyTask: @ 80B5BE4 bx lr thumb_func_end NamingScreenDummyTask thumb_func_start NamingScreen_TurnOffScreen NamingScreen_TurnOffScreen: @ 80B5BE8 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] pop {r0} bx r0 thumb_func_end NamingScreen_TurnOffScreen thumb_func_start sub_80B5C04 sub_80B5C04: @ 80B5C04 push {r4,lr} ldr r0, _080B5C3C @ =sub_80B5AB8 bl SetVBlankCallback ldr r3, _080B5C40 @ =0x04000208 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _080B5C44 @ =0x04000200 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _080B5C48 @ =REG_DISPSTAT ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080B5C3C: .4byte sub_80B5AB8 _080B5C40: .4byte 0x04000208 _080B5C44: .4byte 0x04000200 _080B5C48: .4byte REG_DISPSTAT thumb_func_end sub_80B5C04 thumb_func_start NamingScreen_ClearVram NamingScreen_ClearVram: @ 80B5C4C push {r4-r7,lr} sub sp, 0x4 movs r2, 0xC0 lsls r2, 19 movs r3, 0x80 lsls r3, 9 mov r4, sp movs r6, 0 ldr r1, _080B5C98 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _080B5C9C @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080B5C6A: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _080B5C6A strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5C98: .4byte 0x040000d4 _080B5C9C: .4byte 0x81000800 thumb_func_end NamingScreen_ClearVram thumb_func_start NamingScreen_ClearOam NamingScreen_ClearOam: @ 80B5CA0 sub sp, 0x4 movs r2, 0xE0 lsls r2, 19 mov r1, sp movs r0, 0 strh r0, [r1] ldr r0, _080B5CBC @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080B5CC0 @ =0x81000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x4 bx lr .align 2, 0 _080B5CBC: .4byte 0x040000d4 _080B5CC0: .4byte 0x81000200 thumb_func_end NamingScreen_ClearOam thumb_func_start NamingScreen_SetUpVideoRegs NamingScreen_SetUpVideoRegs: @ 80B5CC4 push {r4,r5,lr} ldr r5, _080B5D2C @ =REG_BG0CNT movs r1, 0 strh r1, [r5] ldr r2, _080B5D30 @ =REG_BG1CNT strh r1, [r2] ldr r3, _080B5D34 @ =REG_BG2CNT strh r1, [r3] ldr r4, _080B5D38 @ =REG_BG3CNT strh r1, [r4] ldr r0, _080B5D3C @ =REG_BG0HOFS strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r1, 0xF8 lsls r1, 5 adds r0, r1, 0 strh r0, [r5] ldr r1, _080B5D40 @ =0x00001c01 adds r0, r1, 0 strh r0, [r2] ldr r2, _080B5D44 @ =0x00001d0a adds r0, r2, 0 strh r0, [r3] ldr r1, _080B5D48 @ =0x00001e03 adds r0, r1, 0 strh r0, [r4] ldr r1, _080B5D4C @ =REG_BLDCNT movs r2, 0xC8 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080B5D50 @ =0x0000080c adds r0, r2, 0 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B5D2C: .4byte REG_BG0CNT _080B5D30: .4byte REG_BG1CNT _080B5D34: .4byte REG_BG2CNT _080B5D38: .4byte REG_BG3CNT _080B5D3C: .4byte REG_BG0HOFS _080B5D40: .4byte 0x00001c01 _080B5D44: .4byte 0x00001d0a _080B5D48: .4byte 0x00001e03 _080B5D4C: .4byte REG_BLDCNT _080B5D50: .4byte 0x0000080c thumb_func_end NamingScreen_SetUpVideoRegs thumb_func_start NamingScreen_Init NamingScreen_Init: @ 80B5D54 push {r4-r6,lr} bl GetNamingScreenParameters ldr r4, _080B5DBC @ =0x02000000 movs r0, 0 strb r0, [r4] movs r2, 0 strh r0, [r4, 0x4] strh r0, [r4, 0x6] movs r1, 0x1 movs r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x2 strh r0, [r4, 0xA] strb r2, [r4, 0xC] strb r1, [r4, 0xD] ldr r1, _080B5DC0 @ =gUnknown_083CE398 ldrb r0, [r4, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r4, 0x34] ldrb r1, [r0, 0x4] strb r1, [r4, 0xE] ldrb r1, [r0, 0x1] lsrs r1, 1 movs r0, 0xE subs r0, r1 strh r0, [r4, 0x2] ldr r6, _080B5DC4 @ =gKeyRepeatStartDelay ldrh r0, [r6] strh r0, [r4, 0x3C] adds r5, r4, 0 adds r5, 0x11 adds r0, r5, 0 movs r1, 0xFF movs r2, 0x10 bl memset ldr r0, [r4, 0x34] ldrb r0, [r0] cmp r0, 0 beq _080B5DB2 ldr r1, [r4, 0x38] adds r0, r5, 0 bl StringCopy _080B5DB2: movs r0, 0x10 strh r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B5DBC: .4byte 0x02000000 _080B5DC0: .4byte gUnknown_083CE398 _080B5DC4: .4byte gKeyRepeatStartDelay thumb_func_end NamingScreen_Init thumb_func_start sub_80B5DC8 sub_80B5DC8: @ 80B5DC8 push {r4,lr} ldr r4, _080B5DE0 @ =gWindowConfig_81E6E88 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow pop {r4} pop {r0} bx r0 .align 2, 0 _080B5DE0: .4byte gWindowConfig_81E6E88 thumb_func_end sub_80B5DC8 thumb_func_start NamingScreen_ResetObjects NamingScreen_ResetObjects: @ 80B5DE4 push {lr} bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks pop {r0} bx r0 thumb_func_end NamingScreen_ResetObjects thumb_func_start sub_80B5DFC sub_80B5DFC: @ 80B5DFC push {lr} bl sub_80B7558 bl sub_80B753C bl sub_80B7680 bl sub_80B75C4 bl sub_80B7794 bl sub_80B78A8 bl sub_80B7960 pop {r0} bx r0 thumb_func_end sub_80B5DFC thumb_func_start sub_80B5E20 sub_80B5E20: @ 80B5E20 push {lr} bl sub_80B6774 bl sub_80B6A80 bl sub_80B6CA8 bl sub_80B6D04 bl sub_80B6E44 pop {r0} bx r0 thumb_func_end sub_80B5E20 thumb_func_start sub_80B5E3C sub_80B5E3C: @ 80B5E3C push {lr} bl sub_80B61D8 bl sub_80B6438 bl sub_80B5E50 pop {r0} bx r0 thumb_func_end sub_80B5E3C thumb_func_start sub_80B5E50 sub_80B5E50: @ 80B5E50 push {r4,lr} ldr r4, _080B5E6C @ =sub_80B5E70 adds r0, r4, 0 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _080B5E6C: .4byte sub_80B5E70 thumb_func_end sub_80B5E50 thumb_func_start sub_80B5E70 sub_80B5E70: @ 80B5E70 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 ldr r7, _080B5E9C @ =gUnknown_083CE218 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r6, _080B5EA0 @ =0x02000000 ldr r5, _080B5EA4 @ =gTasks _080B5E82: ldrb r0, [r6] lsls r0, 2 adds r0, r7 ldr r1, [r0] adds r0, r4, r5 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080B5E82 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5E9C: .4byte gUnknown_083CE218 _080B5EA0: .4byte 0x02000000 _080B5EA4: .4byte gTasks thumb_func_end sub_80B5E70 thumb_func_start sub_80B5EA8 sub_80B5EA8: @ 80B5EA8 push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _080B5ECC @ =0x02000000 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _080B5ECC: .4byte 0x02000000 thumb_func_end sub_80B5EA8 thumb_func_start sub_80B5ED0 sub_80B5ED0: @ 80B5ED0 push {lr} ldr r0, _080B5EF8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B5EF2 movs r0, 0x1 bl sub_80B6210 movs r0, 0x1 bl sub_80B68D8 ldr r1, _080B5EFC @ =0x02000000 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080B5EF2: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B5EF8: .4byte gPaletteFade _080B5EFC: .4byte 0x02000000 thumb_func_end sub_80B5ED0 thumb_func_start sub_80B5F00 sub_80B5F00: @ 80B5F00 push {lr} bl sub_80B60B8 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80B5F00 thumb_func_start sub_80B5F10 sub_80B5F10: @ 80B5F10 push {lr} bl sub_80B6938 lsls r0, 24 cmp r0, 0 beq _080B5F2C movs r0, 0x1 bl sub_80B6210 bl sub_80B6878 ldr r1, _080B5F34 @ =0x02000000 movs r0, 0x2 strb r0, [r1] _080B5F2C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B5F34: .4byte 0x02000000 thumb_func_end sub_80B5F10 thumb_func_start sub_80B5F38 sub_80B5F38: @ 80B5F38 push {lr} movs r0, 0 bl sub_80B6210 bl sub_80B6B14 bl sub_80B65F0 movs r0, 0x1 bl sub_80B6888 movs r0, 0 movs r1, 0 movs r2, 0x1 bl sub_80B6460 movs r0, 0x6 bl PlaySE ldr r1, _080B5F6C @ =0x02000000 movs r0, 0x5 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B5F6C: .4byte 0x02000000 thumb_func_end sub_80B5F38 thumb_func_start sub_80B5F70 sub_80B5F70: @ 80B5F70 push {r4,r5,lr} sub sp, 0x4 bl sub_80B6610 lsls r0, 24 cmp r0, 0 beq _080B5FDC ldr r4, _080B5FE8 @ =0x02000000 movs r0, 0x2 strb r0, [r4] ldrb r0, [r4, 0xE] adds r0, 0x1 strb r0, [r4, 0xE] ldrb r0, [r4, 0xE] movs r1, 0x3 bl __umodsi3 strb r0, [r4, 0xE] bl sub_80B7614 bl sub_80B77F8 movs r0, 0x1 bl sub_80B6210 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl sub_80B6858 ldrb r0, [r4, 0xE] cmp r0, 0x2 bne _080B5FC8 mov r0, sp ldrh r0, [r0] subs r0, 0x6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080B5FC8 mov r1, sp movs r0, 0x5 strh r0, [r1] _080B5FC8: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl sub_80B680C movs r0, 0 bl sub_80B6888 _080B5FDC: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B5FE8: .4byte 0x02000000 thumb_func_end sub_80B5F70 thumb_func_start pokemon_store pokemon_store: @ 80B5FEC push {r4,lr} bl sub_80B74B0 movs r0, 0 bl sub_80B6210 movs r0, 0 bl sub_80B68D8 movs r0, 0x3 movs r1, 0 movs r2, 0x1 bl sub_80B6460 ldr r0, _080B6030 @ =gKeyRepeatStartDelay ldr r4, _080B6034 @ =0x02000000 ldrh r1, [r4, 0x3C] strh r1, [r0] ldrb r0, [r4, 0x1] cmp r0, 0x2 bne _080B6038 bl CalculatePlayerPartyCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _080B6038 bl sub_80B74FC movs r0, 0x7 strb r0, [r4] movs r0, 0 b _080B6040 .align 2, 0 _080B6030: .4byte gKeyRepeatStartDelay _080B6034: .4byte 0x02000000 _080B6038: ldr r1, _080B6048 @ =0x02000000 movs r0, 0x8 strb r0, [r1] movs r0, 0x1 _080B6040: pop {r4} pop {r1} bx r1 .align 2, 0 _080B6048: .4byte 0x02000000 thumb_func_end pokemon_store thumb_func_start sub_80B604C sub_80B604C: @ 80B604C push {lr} bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _080B6060 ldr r1, _080B6068 @ =0x02000000 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080B6060: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B6068: .4byte 0x02000000 thumb_func_end sub_80B604C thumb_func_start sub_80B606C sub_80B606C: @ 80B606C push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080B6090 @ =0x02000000 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _080B6090: .4byte 0x02000000 thumb_func_end sub_80B606C thumb_func_start sub_80B6094 sub_80B6094: @ 80B6094 push {lr} ldr r0, _080B60B0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B60AA ldr r0, _080B60B4 @ =0x02000000 ldr r0, [r0, 0x48] bl SetMainCallback2 _080B60AA: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B60B0: .4byte gPaletteFade _080B60B4: .4byte 0x02000000 thumb_func_end sub_80B6094 thumb_func_start sub_80B60B8 sub_80B60B8: @ 80B60B8 push {r4,r5,lr} bl sub_80B61EC lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_80B6958 lsls r0, 24 lsrs r0, 24 cmp r4, 0x8 bne _080B60D6 bl sub_80B61C8 b _080B60F2 _080B60D6: cmp r4, 0x6 bne _080B60E0 bl sub_80B6FBC b _080B6100 _080B60E0: cmp r5, 0x7 beq _080B60FC ldr r1, _080B60F8 @ =gUnknown_083CE240 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 _080B60F2: lsls r0, 24 lsrs r0, 24 b _080B6102 .align 2, 0 _080B60F8: .4byte gUnknown_083CE240 _080B60FC: bl sub_80B7090 _080B6100: movs r0, 0 _080B6102: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B60B8 thumb_func_start sub_80B6108 sub_80B6108: @ 80B6108 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x3 movs r1, 0 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 bne _080B613C bl sub_80B7004 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80B6914 cmp r4, 0 beq _080B613C movs r0, 0 bl sub_80B6210 ldr r1, _080B6144 @ =0x02000000 movs r0, 0x3 strb r0, [r1] _080B613C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080B6144: .4byte 0x02000000 thumb_func_end sub_80B6108 thumb_func_start sub_80B6148 sub_80B6148: @ 80B6148 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 beq _080B6162 movs r0, 0 b _080B616A _080B6162: bl sub_80B61C8 lsls r0, 24 lsrs r0, 24 _080B616A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80B6148 thumb_func_start sub_80B6170 sub_80B6170: @ 80B6170 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 bne _080B618A bl sub_80B6FBC _080B618A: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80B6170 thumb_func_start sub_80B6194 sub_80B6194: @ 80B6194 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x1 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 beq _080B61AE movs r0, 0 b _080B61BC _080B61AE: movs r0, 0x5 bl PlaySE ldr r1, _080B61C4 @ =0x02000000 movs r0, 0x6 strb r0, [r1] movs r0, 0x1 _080B61BC: pop {r4} pop {r1} bx r1 .align 2, 0 _080B61C4: .4byte 0x02000000 thumb_func_end sub_80B6194 thumb_func_start sub_80B61C8 sub_80B61C8: @ 80B61C8 ldr r1, _080B61D4 @ =0x02000000 movs r0, 0x4 strb r0, [r1] movs r0, 0x1 bx lr .align 2, 0 _080B61D4: .4byte 0x02000000 thumb_func_end sub_80B61C8 thumb_func_start sub_80B61D8 sub_80B61D8: @ 80B61D8 push {lr} ldr r0, _080B61E8 @ =sub_80B623C movs r1, 0x1 bl CreateTask pop {r0} bx r0 .align 2, 0 _080B61E8: .4byte sub_80B623C thumb_func_end sub_80B61D8 thumb_func_start sub_80B61EC sub_80B61EC: @ 80B61EC push {lr} ldr r0, _080B6208 @ =sub_80B623C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080B620C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0xA] pop {r1} bx r1 .align 2, 0 _080B6208: .4byte sub_80B623C _080B620C: .4byte gTasks thumb_func_end sub_80B61EC thumb_func_start sub_80B6210 sub_80B6210: @ 80B6210 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B6234 @ =sub_80B623C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080B6238 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _080B6234: .4byte sub_80B623C _080B6238: .4byte gTasks thumb_func_end sub_80B6210 thumb_func_start sub_80B623C sub_80B623C: @ 80B623C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _080B6264 @ =gUnknown_083CE250 ldr r2, _080B6268 @ =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080B6264: .4byte gUnknown_083CE250 _080B6268: .4byte gTasks thumb_func_end sub_80B623C thumb_func_start sub_80B626C sub_80B626C: @ 80B626C movs r1, 0 strh r1, [r0, 0xA] bx lr thumb_func_end sub_80B626C thumb_func_start sub_80B6274 sub_80B6274: @ 80B6274 push {lr} adds r2, r0, 0 movs r0, 0 strh r0, [r2, 0xA] ldr r0, _080B6290 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080B6294 movs r0, 0x5 strh r0, [r2, 0xA] b _080B62C8 .align 2, 0 _080B6290: .4byte gMain _080B6294: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B62A2 movs r0, 0x6 strh r0, [r2, 0xA] b _080B62C8 _080B62A2: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080B62B0 movs r0, 0x8 strh r0, [r2, 0xA] b _080B62C8 _080B62B0: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080B62C2 movs r0, 0x9 strh r0, [r2, 0xA] bl sub_80B6878 b _080B62C8 _080B62C2: adds r0, r2, 0 bl sub_80B62CC _080B62C8: pop {r0} bx r0 thumb_func_end sub_80B6274 thumb_func_start sub_80B62CC sub_80B62CC: @ 80B62CC push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sub_80B6858 ldr r0, _080B6374 @ =gMain ldrh r2, [r0, 0x30] movs r0, 0x40 ands r0, r2 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r1, r0, 31 movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080B62F8 movs r1, 0x2 _080B62F8: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080B6302 movs r1, 0x3 _080B6302: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080B630C movs r1, 0x4 _080B630C: mov r0, sp ldrh r6, [r0] mov r2, sp ldr r0, _080B6378 @ =gUnknown_083CE258 lsls r1, 1 adds r0, r1, r0 ldrh r3, [r0] adds r0, r6, r3 strh r0, [r2] ldr r0, _080B637C @ =gUnknown_083CE262 adds r1, r0 ldrh r0, [r1] ldrh r1, [r4] adds r0, r1 strh r0, [r4] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _080B633A mov r1, sp movs r0, 0x8 strh r0, [r1] _080B633A: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x8 ble _080B634A mov r1, sp movs r0, 0 strh r0, [r1] _080B634A: lsls r0, r3, 16 asrs r1, r0, 16 cmp r1, 0 beq _080B63CA ldr r0, _080B6380 @ =0x02000000 ldrb r0, [r0, 0xE] cmp r0, 0x2 bne _080B638A mov r0, sp ldrh r0, [r0] subs r0, 0x6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080B638A cmp r1, 0 ble _080B6384 mov r1, sp movs r0, 0x8 b _080B6388 .align 2, 0 _080B6374: .4byte gMain _080B6378: .4byte gUnknown_083CE258 _080B637C: .4byte gUnknown_083CE262 _080B6380: .4byte 0x02000000 _080B6384: mov r1, sp movs r0, 0x5 _080B6388: strh r0, [r1] _080B638A: mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x8 bne _080B63AC ldrh r0, [r4] strh r0, [r5, 0xC] ldr r1, _080B63A8 @ =gUnknown_083CE26C movs r2, 0 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] b _080B63C8 .align 2, 0 _080B63A8: .4byte gUnknown_083CE26C _080B63AC: cmp r6, 0x8 bne _080B63CA movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080B63BC ldrh r0, [r5, 0xC] b _080B63C8 _080B63BC: ldr r0, _080B63FC @ =gUnknown_083CE274 movs r2, 0 ldrsh r1, [r4, r2] lsls r1, 1 adds r1, r0 ldrh r0, [r1] _080B63C8: strh r0, [r4] _080B63CA: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x8 bne _080B6408 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 bge _080B63E0 movs r0, 0x2 strh r0, [r4] _080B63E0: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x2 ble _080B63EC movs r0, 0 strh r0, [r4] _080B63EC: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 bne _080B6400 movs r0, 0x1 strh r0, [r5, 0xC] b _080B6420 .align 2, 0 _080B63FC: .4byte gUnknown_083CE274 _080B6400: cmp r0, 0x2 bne _080B6420 strh r0, [r5, 0xC] b _080B6420 _080B6408: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bge _080B6414 movs r0, 0x3 strh r0, [r4] _080B6414: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0x3 ble _080B6420 movs r0, 0 strh r0, [r4] _080B6420: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl sub_80B680C add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B62CC thumb_func_start sub_80B6438 sub_80B6438: @ 80B6438 push {lr} ldr r0, _080B6458 @ =sub_80B64D4 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B645C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x3 strh r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _080B6458: .4byte sub_80B64D4 _080B645C: .4byte gTasks thumb_func_end sub_80B6438 thumb_func_start sub_80B6460 sub_80B6460: @ 80B6460 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _080B6498 @ =sub_80B64D4 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B649C @ =gTasks adds r4, r1, r0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r5, r0 bne _080B64A0 cmp r6, 0 bne _080B64A0 strh r7, [r4, 0xA] movs r0, 0x1 strh r0, [r4, 0xC] b _080B64CC .align 2, 0 _080B6498: .4byte sub_80B64D4 _080B649C: .4byte gTasks _080B64A0: cmp r5, 0x3 bne _080B64B0 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _080B64B0 cmp r6, 0 beq _080B64CC _080B64B0: ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x3 beq _080B64C2 lsls r0, r1, 24 lsrs r0, 24 bl sub_80B65AC _080B64C2: adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_80B65D4 _080B64CC: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B6460 thumb_func_start sub_80B64D4 sub_80B64D4: @ 80B64D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B6548 @ =gTasks adds r4, r1, r0 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x3 beq _080B6540 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 beq _080B6540 lsls r0, r1, 24 lsrs r0, 24 bl sub_80B654C lsls r0, 16 lsrs r0, 16 ldrb r3, [r4, 0xE] adds r1, r3, 0 adds r2, r3, 0 bl MultiplyInvertedPaletteRGBComponents ldrh r1, [r4, 0x12] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 beq _080B6520 subs r0, r1, 0x1 strh r0, [r4, 0x12] lsls r0, 16 cmp r0, 0 bne _080B6540 _080B6520: movs r0, 0x2 strh r0, [r4, 0x12] ldrh r1, [r4, 0x10] ldrh r2, [r4, 0xE] adds r0, r1, r2 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 beq _080B653C cmp r0, 0 bne _080B6540 ldrh r0, [r4, 0xA] strh r0, [r4, 0xC] _080B653C: negs r0, r1 strh r0, [r4, 0x10] _080B6540: pop {r4} pop {r0} bx r0 .align 2, 0 _080B6548: .4byte gTasks thumb_func_end sub_80B64D4 thumb_func_start sub_80B654C sub_80B654C: @ 80B654C push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x4 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x87 lsls r1, 1 adds r5, r1, 0 adds r0, r5 add r6, sp, 0x8 strh r0, [r6] movs r0, 0x6 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x86 lsls r1, 1 adds r0, r1 mov r1, sp adds r1, 0xA strh r0, [r1] movs r0, 0x6 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r5 add r1, sp, 0xC strh r0, [r1] mov r0, sp adds r1, r6, 0 movs r2, 0x6 bl memcpy lsls r4, 1 mov r1, sp adds r0, r1, r4 ldrh r0, [r0] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80B654C thumb_func_start sub_80B65AC sub_80B65AC: @ 80B65AC push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80B654C lsls r0, 16 ldr r2, _080B65CC @ =gPlttBufferFaded lsrs r0, 15 adds r2, r0, r2 ldr r1, _080B65D0 @ =gPlttBufferUnfaded adds r0, r1 ldrh r0, [r0] strh r0, [r2] pop {r0} bx r0 .align 2, 0 _080B65CC: .4byte gPlttBufferFaded _080B65D0: .4byte gPlttBufferUnfaded thumb_func_end sub_80B65AC thumb_func_start sub_80B65D4 sub_80B65D4: @ 80B65D4 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 movs r3, 0 strh r1, [r0, 0x8] strh r2, [r0, 0xA] movs r2, 0x1 strh r2, [r0, 0xC] movs r1, 0xF strh r1, [r0, 0xE] strh r2, [r0, 0x10] strh r3, [r0, 0x12] bx lr thumb_func_end sub_80B65D4 thumb_func_start sub_80B65F0 sub_80B65F0: @ 80B65F0 push {r4,lr} ldr r4, _080B660C @ =sub_80B6630 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _080B660C: .4byte sub_80B6630 thumb_func_end sub_80B65F0 thumb_func_start sub_80B6610 sub_80B6610: @ 80B6610 push {lr} ldr r0, _080B6624 @ =sub_80B6630 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080B6628 movs r0, 0 b _080B662A .align 2, 0 _080B6624: .4byte sub_80B6630 _080B6628: movs r0, 0x1 _080B662A: pop {r1} bx r1 thumb_func_end sub_80B6610 thumb_func_start sub_80B6630 sub_80B6630: @ 80B6630 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _080B6660 @ =gUnknown_083CE27C ldr r2, _080B6664 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _080B6642: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080B6642 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6660: .4byte gUnknown_083CE27C _080B6664: .4byte gTasks thumb_func_end sub_80B6630 thumb_func_start sub_80B6668 sub_80B6668: @ 80B6668 ldr r2, _080B667C @ =0x02000000 movs r1, 0 strh r1, [r2, 0x4] strh r1, [r2, 0x6] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] movs r0, 0 bx lr .align 2, 0 _080B667C: .4byte 0x02000000 thumb_func_end sub_80B6668 thumb_func_start sub_80B6680 sub_80B6680: @ 80B6680 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, _080B66E4 @ =gUnknown_083CE28C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r1, 0x28 bl Sin ldr r5, _080B66E8 @ =0x02000000 ldrb r1, [r5, 0xC] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] ldrh r0, [r4, 0xA] adds r0, 0x80 movs r1, 0xFF ands r0, r1 movs r1, 0x28 bl Sin ldrb r1, [r5, 0xD] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x3F ble _080B66DA ldrb r1, [r5, 0x8] ldrh r0, [r5, 0xA] strh r0, [r5, 0x8] strh r1, [r5, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080B66DA: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B66E4: .4byte gUnknown_083CE28C _080B66E8: .4byte 0x02000000 thumb_func_end sub_80B6680 thumb_func_start sub_80B66EC sub_80B66EC: @ 80B66EC push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, _080B6750 @ =gUnknown_083CE28C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r1, 0x28 bl Sin ldr r5, _080B6754 @ =0x02000000 ldrb r1, [r5, 0xC] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] ldrh r0, [r4, 0xA] adds r0, 0x80 movs r1, 0xFF ands r0, r1 movs r1, 0x28 bl Sin ldrb r1, [r5, 0xD] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x7F ble _080B6746 ldrb r1, [r5, 0xC] ldrb r0, [r5, 0xD] strb r0, [r5, 0xC] strb r1, [r5, 0xD] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080B6746: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B6750: .4byte gUnknown_083CE28C _080B6754: .4byte 0x02000000 thumb_func_end sub_80B66EC thumb_func_start sub_80B6758 sub_80B6758: @ 80B6758 push {lr} ldr r0, _080B6770 @ =sub_80B6630 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B6770: .4byte sub_80B6630 thumb_func_end sub_80B6758 thumb_func_start sub_80B6774 sub_80B6774: @ 80B6774 push {r4,r5,lr} ldr r0, _080B67E0 @ =gSpriteTemplate_83CE640 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite ldr r4, _080B67E4 @ =0x02000000 strb r0, [r4, 0xF] ldr r5, _080B67E8 @ =gSprites ldrb r0, [r4, 0xF] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r3, 0x4 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r2, r1 orrs r2, r3 strb r2, [r0, 0x1] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 strh r1, [r0, 0x3A] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x3A] movs r0, 0 movs r1, 0 bl sub_80B680C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B67E0: .4byte gSpriteTemplate_83CE640 _080B67E4: .4byte 0x02000000 _080B67E8: .4byte gSprites thumb_func_end sub_80B6774 thumb_func_start sub_80B67EC sub_80B67EC: @ 80B67EC ldr r3, _080B6804 @ =gUnknown_083CE294 lsls r0, 16 asrs r0, 16 ldr r1, _080B6808 @ =0x02000000 ldrb r2, [r1, 0xE] lsls r1, r2, 3 adds r1, r2 adds r0, r1 adds r0, r3 ldrb r0, [r0] bx lr .align 2, 0 _080B6804: .4byte gUnknown_083CE294 _080B6808: .4byte 0x02000000 thumb_func_end sub_80B67EC thumb_func_start sub_80B680C sub_80B680C: @ 80B680C push {r4-r6,lr} adds r5, r1, 0 lsls r0, 16 lsls r5, 16 lsrs r5, 16 ldr r1, _080B6850 @ =0x02000000 ldrb r1, [r1, 0xF] lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r1, _080B6854 @ =gSprites adds r4, r1 lsrs r6, r0, 16 asrs r0, 16 bl sub_80B67EC lsls r0, 24 lsrs r0, 21 adds r0, 0x1B strh r0, [r4, 0x20] lsls r0, r5, 16 asrs r0, 12 adds r0, 0x50 strh r0, [r4, 0x22] ldrh r0, [r4, 0x2E] strh r0, [r4, 0x32] ldrh r0, [r4, 0x30] strh r0, [r4, 0x34] strh r6, [r4, 0x2E] strh r5, [r4, 0x30] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B6850: .4byte 0x02000000 _080B6854: .4byte gSprites thumb_func_end sub_80B680C thumb_func_start sub_80B6858 sub_80B6858: @ 80B6858 ldr r2, _080B6870 @ =0x02000000 ldrb r3, [r2, 0xF] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 ldr r3, _080B6874 @ =gSprites adds r2, r3 ldrh r3, [r2, 0x2E] strh r3, [r0] ldrh r0, [r2, 0x30] strh r0, [r1] bx lr .align 2, 0 _080B6870: .4byte 0x02000000 _080B6874: .4byte gSprites thumb_func_end sub_80B6858 thumb_func_start sub_80B6878 sub_80B6878: @ 80B6878 push {lr} movs r0, 0x8 movs r1, 0x2 bl sub_80B680C pop {r0} bx r0 thumb_func_end sub_80B6878 thumb_func_start sub_80B6888 sub_80B6888: @ 80B6888 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _080B68CC @ =gSprites ldr r4, _080B68D0 @ =0x02000000 ldrb r1, [r4, 0xF] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 ldrh r3, [r2, 0x36] ldr r1, _080B68D4 @ =0xffffff00 ands r1, r3 strh r1, [r2, 0x36] ldrb r2, [r4, 0xF] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 ldrh r2, [r1, 0x36] orrs r0, r2 strh r0, [r1, 0x36] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B68CC: .4byte gSprites _080B68D0: .4byte 0x02000000 _080B68D4: .4byte 0xffffff00 thumb_func_end sub_80B6888 thumb_func_start sub_80B68D8 sub_80B68D8: @ 80B68D8 push {r4,r5,lr} lsls r0, 24 ldr r5, _080B690C @ =gSprites ldr r4, _080B6910 @ =0x02000000 ldrb r1, [r4, 0xF] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 ldrh r3, [r2, 0x36] movs r1, 0xFF ands r1, r3 strh r1, [r2, 0x36] ldrb r2, [r4, 0xF] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsrs r0, 16 ldrh r2, [r1, 0x36] orrs r0, r2 strh r0, [r1, 0x36] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B690C: .4byte gSprites _080B6910: .4byte 0x02000000 thumb_func_end sub_80B68D8 thumb_func_start sub_80B6914 sub_80B6914: @ 80B6914 push {lr} ldr r0, _080B6930 @ =0x02000000 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6934 @ =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _080B6930: .4byte 0x02000000 _080B6934: .4byte gSprites thumb_func_end sub_80B6914 thumb_func_start sub_80B6938 sub_80B6938: @ 80B6938 ldr r2, _080B6950 @ =gSprites ldr r0, _080B6954 @ =0x02000000 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 lsrs r0, 31 bx lr .align 2, 0 _080B6950: .4byte gSprites _080B6954: .4byte 0x02000000 thumb_func_end sub_80B6938 thumb_func_start sub_80B6958 sub_80B6958: @ 80B6958 push {r4,r5,lr} sub sp, 0x8 ldr r1, _080B6988 @ =gUnknown_083CE2AF mov r0, sp movs r2, 0x3 bl memcpy add r4, sp, 0x4 mov r5, sp adds r5, 0x6 adds r0, r4, 0 adds r1, r5, 0 bl sub_80B6858 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x7 ble _080B698C movs r1, 0 ldrsh r0, [r5, r1] add r0, sp ldrb r0, [r0] b _080B698E .align 2, 0 _080B6988: .4byte gUnknown_083CE2AF _080B698C: movs r0, 0 _080B698E: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B6958 thumb_func_start sub_80B6998 sub_80B6998: @ 80B6998 push {r4,r5,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B69B0 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _080B69B0: ldrh r1, [r4, 0x36] movs r0, 0xFF ands r0, r1 adds r3, r4, 0 adds r3, 0x3E movs r1, 0x1 ands r0, r1 lsls r0, 2 ldrb r1, [r3] movs r2, 0x5 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r3] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x8 bne _080B69DA movs r0, 0x4 orrs r2, r0 strb r2, [r3] _080B69DA: ldrb r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080B6A0A movs r2, 0x36 ldrsh r0, [r4, r2] movs r1, 0xFF lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080B6A0A movs r0, 0x2E ldrsh r1, [r4, r0] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r1, r0 bne _080B6A0A movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r1, r0 beq _080B6A16 _080B6A0A: movs r0, 0 strh r0, [r4, 0x38] movs r0, 0x1 strh r0, [r4, 0x3A] movs r0, 0x2 strh r0, [r4, 0x3C] _080B6A16: ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 cmp r0, 0 bne _080B6A3E ldrh r1, [r4, 0x3A] ldrh r2, [r4, 0x38] adds r0, r1, r2 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 beq _080B6A36 cmp r0, 0 bne _080B6A3A _080B6A36: negs r0, r1 strh r0, [r4, 0x3A] _080B6A3A: movs r0, 0x2 strh r0, [r4, 0x3C] _080B6A3E: movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080B6A74 ldrh r4, [r4, 0x38] lsls r5, r4, 24 lsrs r5, 24 lsls r4, 16 asrs r4, 17 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r2, _080B6A7C @ =0x01010000 adds r0, r2 lsrs r0, 16 adds r1, r4, 0 adds r2, r5, 0 adds r3, r5, 0 bl MultiplyInvertedPaletteRGBComponents _080B6A74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6A7C: .4byte 0x01010000 thumb_func_end sub_80B6998 thumb_func_start sub_80B6A80 sub_80B6A80: @ 80B6A80 push {r4,r5,lr} ldr r0, _080B6AF8 @ =gSpriteTemplate_83CE5C8 movs r1, 0xCC movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080B6AFC @ =0x02000000 strb r0, [r1, 0x10] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _080B6B00 @ =gSprites adds r4, r5 ldr r1, _080B6B04 @ =gUnknown_083CE558 adds r0, r4, 0 bl SetSubspriteTables ldr r0, _080B6B08 @ =gSpriteTemplate_83CE5F8 movs r1, 0xCC movs r2, 0x4C movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x3A] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 ldr r1, _080B6B0C @ =gUnknown_083CE560 adds r0, r2, 0 bl SetSubspriteTables ldr r0, _080B6B10 @ =gSpriteTemplate_83CE5E0 movs r1, 0xCC movs r2, 0x4B movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 ands r2, r3 movs r3, 0x4 orrs r2, r3 strb r2, [r1, 0x5] strh r0, [r4, 0x3C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6AF8: .4byte gSpriteTemplate_83CE5C8 _080B6AFC: .4byte 0x02000000 _080B6B00: .4byte gSprites _080B6B04: .4byte gUnknown_083CE558 _080B6B08: .4byte gSpriteTemplate_83CE5F8 _080B6B0C: .4byte gUnknown_083CE560 _080B6B10: .4byte gSpriteTemplate_83CE5E0 thumb_func_end sub_80B6A80 thumb_func_start sub_80B6B14 sub_80B6B14: @ 80B6B14 ldr r2, _080B6B2C @ =0x02000000 ldrb r1, [r2, 0x10] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6B30 @ =gSprites adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x2E] ldrb r1, [r2, 0xE] strh r1, [r0, 0x30] bx lr .align 2, 0 _080B6B2C: .4byte 0x02000000 _080B6B30: .4byte gSprites thumb_func_end sub_80B6B14 thumb_func_start sub_80B6B34 sub_80B6B34: @ 80B6B34 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080B6B58 @ =gUnknown_083CE2B4 _080B6B3A: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080B6B3A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6B58: .4byte gUnknown_083CE2B4 thumb_func_end sub_80B6B34 thumb_func_start sub_80B6B5C sub_80B6B5C: @ 80B6B5C push {r4,lr} adds r4, r0, 0 movs r1, 0x3A ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r3, _080B6B90 @ =gSprites adds r1, r3 movs r2, 0x3C ldrsh r0, [r4, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _080B6B94 @ =0x02000000 ldrb r0, [r0, 0xE] bl sub_80B6C48 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080B6B90: .4byte gSprites _080B6B94: .4byte 0x02000000 thumb_func_end sub_80B6B5C thumb_func_start sub_80B6B98 sub_80B6B98: @ 80B6B98 movs r0, 0 bx lr thumb_func_end sub_80B6B98 thumb_func_start sub_80B6B9C sub_80B6B9C: @ 80B6B9C push {r4,r5,lr} adds r3, r0, 0 movs r0, 0x3A ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r2, _080B6C00 @ =gSprites adds r4, r0, r2 movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r0, r2 ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080B6BF8 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] ldr r0, _080B6C04 @ =0x0000fffc strh r0, [r4, 0x26] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x30] lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 bl __modsi3 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl sub_80B6C48 _080B6BF8: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B6C00: .4byte gSprites _080B6C04: .4byte 0x0000fffc thumb_func_end sub_80B6B9C thumb_func_start sub_80B6C08 sub_80B6C08: @ 80B6C08 push {r4,lr} adds r4, r0, 0 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6C44 @ =gSprites adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] lsls r0, 16 cmp r0, 0 blt _080B6C3C movs r0, 0 strh r0, [r2, 0x26] movs r0, 0x1 strh r0, [r4, 0x2E] _080B6C3C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080B6C44: .4byte gSprites thumb_func_end sub_80B6C08 thumb_func_start sub_80B6C48 sub_80B6C48: @ 80B6C48 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r5, 24 lsrs r5, 24 ldr r0, _080B6CA0 @ =gUnknown_083CE2C4 lsls r4, r5, 1 adds r0, r4, r0 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 4 mov r1, r8 ldrb r2, [r1, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 mov r0, r8 strb r1, [r0, 0x5] ldr r0, _080B6CA4 @ =gUnknown_083CE2CA adds r4, r0 ldrh r0, [r4] bl GetSpriteTileStartByTag adds r1, r6, 0 adds r1, 0x40 strh r0, [r1] adds r6, 0x42 movs r1, 0x3F ands r1, r5 ldrb r2, [r6] movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B6CA0: .4byte gUnknown_083CE2C4 _080B6CA4: .4byte gUnknown_083CE2CA thumb_func_end sub_80B6C48 thumb_func_start sub_80B6CA8 sub_80B6CA8: @ 80B6CA8 push {r4,r5,lr} ldr r0, _080B6CF4 @ =gSpriteTemplate_83CE610 movs r1, 0xCC movs r2, 0x6C movs r3, 0 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080B6CF8 @ =gSprites adds r0, r4 ldr r5, _080B6CFC @ =gUnknown_083CE578 adds r1, r5, 0 bl SetSubspriteTables ldr r0, _080B6D00 @ =gSpriteTemplate_83CE628 movs r1, 0xCC movs r2, 0x84 movs r3, 0 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r1, r5, 0 bl SetSubspriteTables pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6CF4: .4byte gSpriteTemplate_83CE610 _080B6CF8: .4byte gSprites _080B6CFC: .4byte gUnknown_083CE578 _080B6D00: .4byte gSpriteTemplate_83CE628 thumb_func_end sub_80B6CA8 thumb_func_start sub_80B6D04 sub_80B6D04: @ 80B6D04 push {r4-r6,lr} ldr r4, _080B6D8C @ =0x02000000 ldrh r1, [r4, 0x2] subs r1, 0x1 lsls r1, 3 adds r1, 0x4 ldr r0, _080B6D90 @ =gSpriteTemplate_83CE658 lsls r1, 16 asrs r1, 16 movs r2, 0x28 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r3, _080B6D94 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] ldrh r0, [r4, 0x2] lsls r0, 3 adds r0, 0x4 lsls r0, 16 lsrs r1, r0, 16 movs r5, 0 ldr r0, [r4, 0x34] ldrb r0, [r0, 0x1] cmp r5, r0 bcs _080B6D86 adds r6, r3, 0 _080B6D4A: lsls r4, r1, 16 asrs r4, 16 ldr r0, _080B6D98 @ =gSpriteTemplate_83CE670 adds r1, r4, 0 movs r2, 0x2C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] strh r5, [r0, 0x2E] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x8 lsls r4, 16 lsrs r1, r4, 16 ldr r0, _080B6D8C @ =0x02000000 ldr r0, [r0, 0x34] ldrb r0, [r0, 0x1] cmp r5, r0 bcc _080B6D4A _080B6D86: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B6D8C: .4byte 0x02000000 _080B6D90: .4byte gSpriteTemplate_83CE658 _080B6D94: .4byte gSprites _080B6D98: .4byte gSpriteTemplate_83CE670 thumb_func_end sub_80B6D04 thumb_func_start sub_80B6D9C sub_80B6D9C: @ 80B6D9C push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _080B6DE4 @ =gUnknown_083CE2D0 mov r0, sp movs r2, 0x8 bl memcpy ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _080B6DC0 subs r0, r1, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080B6DCE _080B6DC0: movs r0, 0x8 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0x30] _080B6DCE: movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x24] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080B6DE4: .4byte gUnknown_083CE2D0 thumb_func_end sub_80B6D9C thumb_func_start sub_80B6DE8 sub_80B6DE8: @ 80B6DE8 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _080B6E10 @ =gUnknown_083CE2D8 mov r0, sp movs r2, 0x8 bl memcpy bl sub_80B6F44 lsls r0, 24 ldrh r1, [r4, 0x2E] lsls r1, 24 cmp r0, r1 beq _080B6E14 movs r0, 0 strh r0, [r4, 0x26] strh r0, [r4, 0x30] b _080B6E3A .align 2, 0 _080B6E10: .4byte gUnknown_083CE2D8 _080B6E14: movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080B6E3C ldrh r0, [r4, 0x30] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0x30] movs r0, 0 _080B6E3A: strh r0, [r4, 0x32] _080B6E3C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80B6DE8 thumb_func_start sub_80B6E44 sub_80B6E44: @ 80B6E44 push {lr} ldr r1, _080B6E5C @ =gUnknown_083CE2E0 ldr r0, _080B6E60 @ =0x02000000 ldr r0, [r0, 0x34] ldrb r0, [r0, 0x2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _080B6E5C: .4byte gUnknown_083CE2E0 _080B6E60: .4byte 0x02000000 thumb_func_end sub_80B6E44 thumb_func_start nullsub_40 nullsub_40: @ 80B6E64 bx lr thumb_func_end nullsub_40 thumb_func_start sub_80B6E68 sub_80B6E68: @ 80B6E68 push {lr} sub sp, 0x4 ldr r0, _080B6EB0 @ =0x02000000 ldrh r1, [r0, 0x3E] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_805983C lsls r0, 24 lsrs r0, 24 ldr r1, _080B6EB4 @ =SpriteCallbackDummy movs r2, 0 str r2, [sp] movs r2, 0x38 movs r3, 0x18 bl AddPseudoFieldObject adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080B6EB8 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x4 bl StartSpriteAnim add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080B6EB0: .4byte 0x02000000 _080B6EB4: .4byte SpriteCallbackDummy _080B6EB8: .4byte gSprites thumb_func_end sub_80B6E68 thumb_func_start sub_80B6EBC sub_80B6EBC: @ 80B6EBC push {r4,lr} ldr r0, _080B6EF0 @ =gSpriteTemplate_83CE688 movs r1, 0x34 movs r2, 0x18 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080B6EF4 @ =gSprites adds r4, r0 ldr r1, _080B6EF8 @ =gUnknown_083CE580 adds r0, r4, 0 bl SetSubspriteTables ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] pop {r4} pop {r0} bx r0 .align 2, 0 _080B6EF0: .4byte gSpriteTemplate_83CE688 _080B6EF4: .4byte gSprites _080B6EF8: .4byte gUnknown_083CE580 thumb_func_end sub_80B6EBC thumb_func_start sub_80B6EFC sub_80B6EFC: @ 80B6EFC push {lr} sub sp, 0x8 bl sub_809D51C ldr r3, _080B6F38 @ =0x02000000 ldrh r0, [r3, 0x3E] ldr r1, _080B6F3C @ =SpriteCallbackDummy movs r2, 0 str r2, [sp] ldr r2, [r3, 0x44] str r2, [sp, 0x4] movs r2, 0x34 movs r3, 0x18 bl sub_809D2FC lsls r0, 24 lsrs r0, 24 ldr r2, _080B6F40 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r1, 0x5] add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080B6F38: .4byte 0x02000000 _080B6F3C: .4byte SpriteCallbackDummy _080B6F40: .4byte gSprites thumb_func_end sub_80B6EFC thumb_func_start sub_80B6F44 sub_80B6F44: @ 80B6F44 push {r4,lr} movs r2, 0 ldr r1, _080B6F64 @ =0x02000000 ldr r0, [r1, 0x34] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r2, r0 bcs _080B6F72 adds r1, 0x11 adds r3, r0, 0 _080B6F58: adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0xFF bne _080B6F68 adds r0, r2, 0 b _080B6F7C .align 2, 0 _080B6F64: .4byte 0x02000000 _080B6F68: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r3 bcc _080B6F58 _080B6F72: ldr r0, [r4, 0x34] ldrb r0, [r0, 0x1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 _080B6F7C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80B6F44 thumb_func_start sub_80B6F84 sub_80B6F84: @ 80B6F84 push {lr} ldr r2, _080B6FA8 @ =0x02000000 ldr r0, [r2, 0x34] ldrb r0, [r0, 0x1] subs r0, 0x1 lsls r1, r0, 24 cmp r1, 0 ble _080B6FB4 adds r3, r2, 0 adds r3, 0x11 _080B6F98: asrs r2, r1, 24 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0xFF beq _080B6FAC lsrs r0, r1, 24 b _080B6FB6 .align 2, 0 _080B6FA8: .4byte 0x02000000 _080B6FAC: subs r0, r2, 0x1 lsls r1, r0, 24 cmp r1, 0 bgt _080B6F98 _080B6FB4: movs r0, 0 _080B6FB6: pop {r1} bx r1 thumb_func_end sub_80B6F84 thumb_func_start sub_80B6FBC sub_80B6FBC: @ 80B6FBC push {r4,lr} bl sub_80B6F84 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B7000 @ =0x02000000 adds r0, 0x11 adds r4, r0 movs r0, 0 strb r0, [r4] bl sub_80B7960 movs r0, 0xFF strb r0, [r4] bl sub_80B6958 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080B6FEA cmp r0, 0x2 bne _080B6FF4 _080B6FEA: movs r0, 0x1 movs r1, 0 movs r2, 0x1 bl sub_80B6460 _080B6FF4: movs r0, 0x17 bl PlaySE pop {r4} pop {r0} bx r0 .align 2, 0 _080B7000: .4byte 0x02000000 thumb_func_end sub_80B6FBC thumb_func_start sub_80B7004 sub_80B7004: @ 80B7004 push {r4,r5,lr} sub sp, 0x4 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl sub_80B6858 mov r4, sp mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80B67EC lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl sub_80B7768 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 movs r4, 0x1 cmp r0, 0xFF bne _080B7046 bl sub_80B7104 b _080B704E _080B7046: cmp r0, 0xFE bne _080B7054 bl sub_80B713C _080B704E: lsls r0, 24 lsrs r4, r0, 24 b _080B705A _080B7054: adds r0, r1, 0 bl sub_80B7174 _080B705A: bl sub_80B7960 movs r0, 0x5 bl PlaySE cmp r4, 0 beq _080B7084 bl sub_80B6F84 lsls r0, 24 lsrs r0, 24 ldr r1, _080B7080 @ =0x02000000 ldr r1, [r1, 0x34] ldrb r1, [r1, 0x1] subs r1, 0x1 cmp r0, r1 bne _080B7084 movs r0, 0x1 b _080B7086 .align 2, 0 _080B7080: .4byte 0x02000000 _080B7084: movs r0, 0 _080B7086: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B7004 thumb_func_start sub_80B7090 sub_80B7090: @ 80B7090 push {r4-r7,lr} bl sub_80B6F84 lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 ldr r0, _080B70C8 @ =0x02000000 adds r0, 0x11 adds r0, r5, r0 ldrb r4, [r0] adds r6, r4, 0 adds r0, r4, 0 bl sub_80B7198 lsls r0, 24 cmp r0, 0 beq _080B70D6 adds r0, r4, 0 bl sub_80B7264 lsls r0, 24 cmp r0, 0 beq _080B70CC adds r0, r4, 0 adds r1, r5, 0 bl sub_80B7370 b _080B70F4 .align 2, 0 _080B70C8: .4byte 0x02000000 _080B70CC: adds r0, r4, 0 adds r1, r5, 0 bl sub_80B73CC b _080B70F4 _080B70D6: adds r0, r4, 0 bl sub_80B71E4 lsls r0, 24 cmp r0, 0 beq _080B70EC adds r0, r4, 0 adds r1, r5, 0 bl sub_80B7474 b _080B70F4 _080B70EC: adds r0, r6, 0 adds r1, r7, 0 bl sub_80B72A4 _080B70F4: bl sub_80B7960 movs r0, 0x5 bl PlaySE pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B7090 thumb_func_start sub_80B7104 sub_80B7104: @ 80B7104 push {r4,r5,lr} bl sub_80B6F84 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080B7128 @ =0x02000000 adds r0, 0x11 adds r0, r5, r0 ldrb r4, [r0] adds r0, r4, 0 bl sub_80B720C lsls r0, 24 cmp r0, 0 bne _080B712C movs r0, 0 b _080B7136 .align 2, 0 _080B7128: .4byte 0x02000000 _080B712C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80B72A4 movs r0, 0x1 _080B7136: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B7104 thumb_func_start sub_80B713C sub_80B713C: @ 80B713C push {r4,r5,lr} bl sub_80B6F84 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080B7160 @ =0x02000000 adds r0, 0x11 adds r0, r5, r0 ldrb r4, [r0] adds r0, r4, 0 bl sub_80B7264 lsls r0, 24 cmp r0, 0 bne _080B7164 movs r0, 0 b _080B716E .align 2, 0 _080B7160: .4byte 0x02000000 _080B7164: adds r0, r4, 0 adds r1, r5, 0 bl sub_80B7370 movs r0, 0x1 _080B716E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B713C thumb_func_start sub_80B7174 sub_80B7174: @ 80B7174 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80B6F44 lsls r0, 24 lsrs r0, 24 ldr r1, _080B7194 @ =0x02000000 adds r1, 0x11 adds r0, r1 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080B7194: .4byte 0x02000000 thumb_func_end sub_80B7174 thumb_func_start sub_80B7198 sub_80B7198: @ 80B7198 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xC9 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x13 bls _080B71DA adds r0, r1, 0 adds r0, 0x79 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B71DA adds r0, r1, 0 adds r0, 0x74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B71DA adds r0, r1, 0 adds r0, 0x6F lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B71DA adds r0, r1, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B71DE _080B71DA: movs r0, 0x1 b _080B71E0 _080B71DE: movs r0, 0 _080B71E0: pop {r1} bx r1 thumb_func_end sub_80B7198 thumb_func_start sub_80B71E4 sub_80B71E4: @ 80B71E4 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xB5 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x4 bls _080B7202 adds r0, r1, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7206 _080B7202: movs r0, 0x1 b _080B7208 _080B7206: movs r0, 0 _080B7208: pop {r1} bx r1 thumb_func_end sub_80B71E4 thumb_func_start sub_80B720C sub_80B720C: @ 80B720C push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFA lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xE bls _080B725A adds r0, r1, 0 subs r0, 0x1A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B725A adds r0, r1, 0 subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B725A adds r0, r1, 0 subs r0, 0x56 lsls r0, 24 lsrs r0, 24 cmp r0, 0xE bls _080B725A adds r0, r1, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B725A adds r0, r1, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B725E _080B725A: movs r0, 0x1 b _080B7260 _080B725E: movs r0, 0 _080B7260: pop {r1} bx r1 thumb_func_end sub_80B720C thumb_func_start sub_80B7264 sub_80B7264: @ 80B7264 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xE6 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x4 bls _080B729A adds r0, r1, 0 subs r0, 0x46 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B729A adds r0, r1, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B729A adds r0, r1, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B729E _080B729A: movs r0, 0x1 b _080B72A0 _080B729E: movs r0, 0 _080B72A0: pop {r1} bx r1 thumb_func_end sub_80B7264 thumb_func_start sub_80B72A4 sub_80B72A4: @ 80B72A4 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xFA lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bhi _080B72C0 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B72C0: adds r0, r2, 0 subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B72D2 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B72D2: adds r0, r2, 0 subs r0, 0x10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B72E4 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B72E4: adds r0, r2, 0 subs r0, 0x1A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B72F6 adds r0, r2, 0 adds r0, 0x2C b _080B735A _080B72F6: adds r0, r2, 0 subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B7356 adds r0, r2, 0 subs r0, 0x56 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7314 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B7314: adds r0, r2, 0 subs r0, 0x5B lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7326 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B7326: adds r0, r2, 0 subs r0, 0x60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7338 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B7338: adds r0, r2, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B734A adds r0, r2, 0 adds r0, 0x2C b _080B735A _080B734A: adds r0, r2, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B735E _080B7356: adds r0, r2, 0 adds r0, 0xFB _080B735A: lsls r0, 24 lsrs r2, r0, 24 _080B735E: ldr r0, _080B736C @ =0x02000000 adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B736C: .4byte 0x02000000 thumb_func_end sub_80B72A4 thumb_func_start sub_80B7370 sub_80B7370: @ 80B7370 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xE6 lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bhi _080B738C adds r0, r2, 0 adds r0, 0x31 b _080B73B8 _080B738C: adds r0, r2, 0 subs r0, 0x46 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B73B6 adds r0, r2, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B73AA adds r0, r2, 0 adds r0, 0x31 b _080B73B8 _080B73AA: adds r0, r2, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B73BC _080B73B6: adds r0, r2, 0x5 _080B73B8: lsls r0, 24 lsrs r2, r0, 24 _080B73BC: ldr r0, _080B73C8 @ =0x02000000 adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B73C8: .4byte 0x02000000 thumb_func_end sub_80B7370 thumb_func_start sub_80B73CC sub_80B73CC: @ 80B73CC push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xC9 lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bhi _080B73E8 adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B73E8: adds r0, r2, 0 subs r0, 0x3C lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B73FA adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B73FA: adds r0, r2, 0 subs r0, 0x41 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B740C adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B740C: adds r0, r2, 0 subs r0, 0x46 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B745A adds r0, r2, 0 adds r0, 0x79 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B742A adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B742A: adds r0, r2, 0 adds r0, 0x74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B743C adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B743C: adds r0, r2, 0 adds r0, 0x6F lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B744E adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B744E: adds r0, r2, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7462 _080B745A: adds r0, r2, 0 adds r0, 0xD4 _080B745E: lsls r0, 24 lsrs r2, r0, 24 _080B7462: ldr r0, _080B7470 @ =0x02000000 adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B7470: .4byte 0x02000000 thumb_func_end sub_80B73CC thumb_func_start sub_80B7474 sub_80B7474: @ 80B7474 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xB5 lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bls _080B7496 adds r0, r2, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B749E _080B7496: adds r0, r2, 0 adds r0, 0xCF lsls r0, 24 lsrs r2, r0, 24 _080B749E: ldr r0, _080B74AC @ =0x02000000 adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B74AC: .4byte 0x02000000 thumb_func_end sub_80B7474 thumb_func_start sub_80B74B0 sub_80B74B0: @ 80B74B0 push {r4,lr} movs r1, 0 ldr r3, _080B74E4 @ =0x02000000 ldr r0, [r3, 0x34] ldrb r0, [r0, 0x1] cmp r1, r0 bcs _080B74F6 adds r2, r3, 0 adds r4, r3, 0 adds r4, 0x11 _080B74C4: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080B74E8 cmp r0, 0xFF beq _080B74E8 ldr r0, [r2, 0x38] ldr r1, [r2, 0x34] ldrb r2, [r1, 0x1] adds r2, 0x1 lsls r2, 24 lsrs r2, 24 adds r1, r4, 0 bl StringCopyN b _080B74F6 .align 2, 0 _080B74E4: .4byte 0x02000000 _080B74E8: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 ldr r0, [r3, 0x34] ldrb r0, [r0, 0x1] cmp r1, r0 bcc _080B74C4 _080B74F6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80B74B0 thumb_func_start sub_80B74FC sub_80B74FC: @ 80B74FC push {r4,lr} ldr r0, _080B7528 @ =gStringVar1 ldr r1, _080B752C @ =0x02000000 ldr r1, [r1, 0x38] bl StringCopy ldr r4, _080B7530 @ =gStringVar4 ldr r1, _080B7534 @ =gOtherText_SentToPC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080B7538 @ =gWindowConfig_81E6E88 bl BasicInitMenuWindow bl MenuDisplayMessageBox adds r0, r4, 0 bl sub_8072044 pop {r4} pop {r0} bx r0 .align 2, 0 _080B7528: .4byte gStringVar1 _080B752C: .4byte 0x02000000 _080B7530: .4byte gStringVar4 _080B7534: .4byte gOtherText_SentToPC _080B7538: .4byte gWindowConfig_81E6E88 thumb_func_end sub_80B74FC thumb_func_start sub_80B753C sub_80B753C: @ 80B753C push {lr} ldr r0, _080B7550 @ =gUnknown_083CE6A0 bl LoadSpriteSheets ldr r0, _080B7554 @ =gUnknown_083CE708 bl LoadSpritePalettes pop {r0} bx r0 .align 2, 0 _080B7550: .4byte gUnknown_083CE6A0 _080B7554: .4byte gUnknown_083CE708 thumb_func_end sub_80B753C thumb_func_start sub_80B7558 sub_80B7558: @ 80B7558 push {lr} bl sub_80B7568 bl sub_80B75B0 pop {r0} bx r0 thumb_func_end sub_80B7558 thumb_func_start sub_80B7568 sub_80B7568: @ 80B7568 push {r4,lr} ldr r4, _080B759C @ =gNamingScreenMenu_Gfx ldr r3, _080B75A0 @ =gMenuMessageBoxContentTileOffset ldrh r0, [r3] lsls r0, 5 movs r1, 0xC0 lsls r1, 19 adds r0, r1 ldr r1, _080B75A4 @ =0x040000d4 str r4, [r1] str r0, [r1, 0x4] ldr r2, _080B75A8 @ =0x80000400 str r2, [r1, 0x8] ldr r0, [r1, 0x8] ldrh r0, [r3] lsls r0, 5 ldr r3, _080B75AC @ =0x06008000 adds r0, r3 str r4, [r1] str r0, [r1, 0x4] str r2, [r1, 0x8] ldr r0, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _080B759C: .4byte gNamingScreenMenu_Gfx _080B75A0: .4byte gMenuMessageBoxContentTileOffset _080B75A4: .4byte 0x040000d4 _080B75A8: .4byte 0x80000400 _080B75AC: .4byte 0x06008000 thumb_func_end sub_80B7568 thumb_func_start sub_80B75B0 sub_80B75B0: @ 80B75B0 push {lr} ldr r0, _080B75C0 @ =gNamingScreenPalettes movs r1, 0 movs r2, 0x80 bl LoadPalette pop {r0} bx r0 .align 2, 0 _080B75C0: .4byte gNamingScreenPalettes thumb_func_end sub_80B75B0 thumb_func_start sub_80B75C4 sub_80B75C4: @ 80B75C4 push {r4,r5,lr} sub sp, 0x8 ldr r0, _080B7608 @ =gUnknown_083CE308 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r4, _080B760C @ =gUnknown_083CE2F0 ldr r5, _080B7610 @ =0x02000000 ldrb r1, [r5, 0xE] lsls r1, 3 adds r1, r4 ldrb r0, [r5, 0xC] lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r1] bl _call_via_r1 ldrb r1, [r5, 0xE] lsls r1, 3 adds r4, 0x4 adds r1, r4 ldrb r0, [r5, 0xD] lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r1] bl _call_via_r1 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B7608: .4byte gUnknown_083CE308 _080B760C: .4byte gUnknown_083CE2F0 _080B7610: .4byte 0x02000000 thumb_func_end sub_80B75C4 thumb_func_start sub_80B7614 sub_80B7614: @ 80B7614 push {lr} sub sp, 0x8 ldr r0, _080B7644 @ =gUnknown_083CE308 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _080B7648 @ =gUnknown_083CE2F0 ldr r2, _080B764C @ =0x02000000 ldrb r1, [r2, 0xE] lsls r1, 3 adds r0, 0x4 adds r1, r0 ldrb r0, [r2, 0xD] lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r1] bl _call_via_r1 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080B7644: .4byte gUnknown_083CE308 _080B7648: .4byte gUnknown_083CE2F0 _080B764C: .4byte 0x02000000 thumb_func_end sub_80B7614 thumb_func_start sub_80B7650 sub_80B7650: @ 80B7650 push {lr} ldr r1, _080B765C @ =gUnknown_083CE748 bl sub_80B7698 pop {r0} bx r0 .align 2, 0 _080B765C: .4byte gUnknown_083CE748 thumb_func_end sub_80B7650 thumb_func_start sub_80B7660 sub_80B7660: @ 80B7660 push {lr} ldr r1, _080B766C @ =gUnknown_083CEBF8 bl sub_80B7698 pop {r0} bx r0 .align 2, 0 _080B766C: .4byte gUnknown_083CEBF8 thumb_func_end sub_80B7660 thumb_func_start sub_80B7670 sub_80B7670: @ 80B7670 push {lr} ldr r1, _080B767C @ =gUnknown_083CF0A8 bl sub_80B7698 pop {r0} bx r0 .align 2, 0 _080B767C: .4byte gUnknown_083CF0A8 thumb_func_end sub_80B7670 thumb_func_start sub_80B7680 sub_80B7680: @ 80B7680 push {lr} ldr r0, _080B7690 @ =0x0600f000 ldr r1, _080B7694 @ =gUnknown_08E86258 bl sub_80B76E0 pop {r0} bx r0 .align 2, 0 _080B7690: .4byte 0x0600f000 _080B7694: .4byte gUnknown_08E86258 thumb_func_end sub_80B7680 thumb_func_start sub_80B7698 sub_80B7698: @ 80B7698 push {r4-r7,lr} mov r12, r0 adds r3, r1, 0 movs r4, 0 ldr r0, _080B76DC @ =gMenuMessageBoxContentTileOffset ldrh r6, [r0] _080B76A4: movs r1, 0 lsls r4, 16 asrs r5, r4, 11 _080B76AA: lsls r0, r1, 16 asrs r0, 16 adds r1, r5, r0 lsls r1, 1 add r1, r12 ldrh r7, [r3] adds r2, r6, r7 strh r2, [r1] adds r0, 0x1 lsls r0, 16 adds r3, 0x2 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080B76AA movs r1, 0x80 lsls r1, 9 adds r0, r4, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080B76A4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B76DC: .4byte gMenuMessageBoxContentTileOffset thumb_func_end sub_80B7698 thumb_func_start sub_80B76E0 sub_80B76E0: @ 80B76E0 push {r4-r7,lr} mov r12, r0 adds r3, r1, 0 movs r4, 0 ldr r0, _080B7728 @ =gMenuMessageBoxContentTileOffset ldrh r6, [r0] _080B76EC: movs r1, 0 lsls r5, r4, 16 asrs r4, r5, 11 _080B76F2: lsls r0, r1, 16 asrs r0, 16 adds r1, r4, r0 lsls r1, 1 add r1, r12 ldrh r7, [r3] adds r2, r6, r7 strh r2, [r1] adds r0, 0x1 lsls r0, 16 adds r3, 0x2 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080B76F2 adds r3, 0x4 movs r1, 0x80 lsls r1, 9 adds r0, r5, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080B76EC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B7728: .4byte gMenuMessageBoxContentTileOffset thumb_func_end sub_80B76E0 thumb_func_start sub_80B772C sub_80B772C: @ 80B772C push {lr} ldr r1, _080B773C @ =0x02000000 ldrb r0, [r1, 0xE] ldrb r1, [r1, 0xC] bl nullsub_20 pop {r0} bx r0 .align 2, 0 _080B773C: .4byte 0x02000000 thumb_func_end sub_80B772C thumb_func_start sub_80B7740 sub_80B7740: @ 80B7740 push {r4,lr} ldr r4, _080B7760 @ =0x02000000 ldrb r0, [r4, 0xE] adds r0, 0x1 movs r1, 0x3 bl __modsi3 lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0xD] bl nullsub_20 pop {r4} pop {r0} bx r0 .align 2, 0 _080B7760: .4byte 0x02000000 thumb_func_end sub_80B7740 thumb_func_start nullsub_20 nullsub_20: @ 80B7764 bx lr thumb_func_end nullsub_20 thumb_func_start sub_80B7768 sub_80B7768: @ 80B7768 ldr r3, _080B778C @ =gUnknown_083CE3A8 lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 lsls r2, r1, 2 adds r2, r1 lsls r2, 2 adds r0, r2 ldr r1, _080B7790 @ =0x02000000 ldrb r2, [r1, 0xE] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 adds r0, r1 adds r0, r3 ldrb r0, [r0] bx lr .align 2, 0 _080B778C: .4byte gUnknown_083CE3A8 _080B7790: .4byte 0x02000000 thumb_func_end sub_80B7768 thumb_func_start sub_80B7794 sub_80B7794: @ 80B7794 push {r4-r6,lr} ldr r6, _080B77EC @ =gUnknown_083CE328 ldr r4, _080B77F0 @ =0x02000000 ldrb r0, [r4, 0xC] lsls r0, 2 ldrb r1, [r4, 0xE] lsls r1, 4 adds r0, r1 adds r0, r6 ldr r0, [r0] bl BasicInitMenuWindow ldr r5, _080B77F4 @ =gUnknown_083CE310 ldrb r0, [r4, 0xE] lsls r0, 3 adds r0, r5 ldr r0, [r0] bl _call_via_r0 ldrb r1, [r4, 0xD] lsls r1, 2 ldrb r0, [r4, 0xE] lsls r0, 4 adds r1, r0 adds r6, 0x8 adds r1, r6 ldr r0, [r1] bl BasicInitMenuWindow ldrb r0, [r4, 0xE] lsls r0, 3 adds r5, 0x4 adds r0, r5 ldr r0, [r0] bl _call_via_r0 bl sub_80B772C bl sub_80B7740 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B77EC: .4byte gUnknown_083CE328 _080B77F0: .4byte 0x02000000 _080B77F4: .4byte gUnknown_083CE310 thumb_func_end sub_80B7794 thumb_func_start sub_80B77F8 sub_80B77F8: @ 80B77F8 push {r4,lr} ldr r2, _080B782C @ =gUnknown_083CE328 ldr r4, _080B7830 @ =0x02000000 ldrb r1, [r4, 0xD] lsls r1, 2 ldrb r0, [r4, 0xE] lsls r0, 4 adds r1, r0 adds r2, 0x8 adds r1, r2 ldr r0, [r1] bl BasicInitMenuWindow ldr r1, _080B7834 @ =gUnknown_083CE310 ldrb r0, [r4, 0xE] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_80B7740 pop {r4} pop {r0} bx r0 .align 2, 0 _080B782C: .4byte gUnknown_083CE328 _080B7830: .4byte 0x02000000 _080B7834: .4byte gUnknown_083CE310 thumb_func_end sub_80B77F8 thumb_func_start sub_80B7838 sub_80B7838: @ 80B7838 push {lr} movs r0, 0x1 bl sub_80B785C pop {r0} bx r0 thumb_func_end sub_80B7838 thumb_func_start sub_80B7844 sub_80B7844: @ 80B7844 push {lr} movs r0, 0 bl sub_80B785C pop {r0} bx r0 thumb_func_end sub_80B7844 thumb_func_start sub_80B7850 sub_80B7850: @ 80B7850 push {lr} movs r0, 0x2 bl sub_80B785C pop {r0} bx r0 thumb_func_end sub_80B7850 thumb_func_start sub_80B785C sub_80B785C: @ 80B785C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 movs r2, 0 movs r5, 0x9 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 4 _080B786C: lsls r4, r2, 16 asrs r4, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 2 ldr r1, _080B78A4 @ =gUnknown_083CE3A8 adds r0, r1 adds r0, r6, r0 lsls r2, r5, 24 lsrs r2, 24 movs r1, 0x3 bl MenuPrint adds r4, 0x1 lsls r4, 16 lsls r0, r5, 16 movs r1, 0x80 lsls r1, 10 adds r0, r1 lsrs r5, r0, 16 lsrs r2, r4, 16 asrs r4, 16 cmp r4, 0x3 ble _080B786C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B78A4: .4byte gUnknown_083CE3A8 thumb_func_end sub_80B785C thumb_func_start sub_80B78A8 sub_80B78A8: @ 80B78A8 push {r4,lr} ldr r0, _080B78E4 @ =gWindowConfig_81E6F4C bl BasicInitMenuWindow ldr r1, _080B78E8 @ =gUnknown_083CE358 ldr r4, _080B78EC @ =0x02000000 ldrb r0, [r4, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r1, _080B78F0 @ =gUnknown_083CE368 ldr r0, [r4, 0x34] ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, [r4, 0x34] ldr r0, [r0, 0x8] movs r1, 0x9 movs r2, 0x2 bl MenuPrint pop {r4} pop {r0} bx r0 .align 2, 0 _080B78E4: .4byte gWindowConfig_81E6F4C _080B78E8: .4byte gUnknown_083CE358 _080B78EC: .4byte 0x02000000 _080B78F0: .4byte gUnknown_083CE368 thumb_func_end sub_80B78A8 thumb_func_start nullsub_61 nullsub_61: @ 80B78F4 bx lr thumb_func_end nullsub_61 thumb_func_start sub_80B78F8 sub_80B78F8: @ 80B78F8 push {lr} ldr r0, _080B7914 @ =gStringVar1 ldr r1, _080B7918 @ =0x02000000 movs r3, 0x3E ldrsh r2, [r1, r3] movs r1, 0xB muls r1, r2 ldr r2, _080B791C @ =gSpeciesNames adds r1, r2 bl StringCopy pop {r0} bx r0 .align 2, 0 _080B7914: .4byte gStringVar1 _080B7918: .4byte 0x02000000 _080B791C: .4byte gSpeciesNames thumb_func_end sub_80B78F8 thumb_func_start nullsub_62 nullsub_62: @ 80B7920 bx lr thumb_func_end nullsub_62 thumb_func_start sub_80B7924 sub_80B7924: @ 80B7924 push {lr} sub sp, 0x4 ldr r1, _080B7958 @ =gUnknown_083CE370 mov r0, sp movs r2, 0x2 bl memcpy ldr r0, _080B795C @ =0x02000000 adds r0, 0x40 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0xFF beq _080B7952 cmp r0, 0xFE bne _080B7948 mov r1, sp movs r0, 0xB6 strb r0, [r1] _080B7948: mov r0, sp movs r1, 0x14 movs r2, 0x4 bl MenuPrint _080B7952: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080B7958: .4byte gUnknown_083CE370 _080B795C: .4byte 0x02000000 thumb_func_end sub_80B7924 thumb_func_start sub_80B7960 sub_80B7960: @ 80B7960 push {r4,lr} ldr r0, _080B799C @ =gStringVar1 movs r2, 0xFC strb r2, [r0] movs r1, 0x14 strb r1, [r0, 0x1] movs r1, 0x8 strb r1, [r0, 0x2] strb r2, [r0, 0x3] movs r1, 0x11 strb r1, [r0, 0x4] movs r1, 0x1 strb r1, [r0, 0x5] adds r0, 0x6 ldr r4, _080B79A0 @ =0x02000011 adds r1, r4, 0 bl StringCopy ldr r0, _080B79A4 @ =gWindowConfig_81E6F4C bl BasicInitMenuWindow ldr r0, _080B799C @ =gStringVar1 subs r4, 0x11 ldrb r1, [r4, 0x2] movs r2, 0x4 bl MenuPrint pop {r4} pop {r0} bx r0 .align 2, 0 _080B799C: .4byte gStringVar1 _080B79A0: .4byte 0x02000011 _080B79A4: .4byte gWindowConfig_81E6F4C thumb_func_end sub_80B7960 .align 2, 0 @ Don't pad with nop.